[INFO] cloning repository https://github.com/erg-lang/erg
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/erg-lang/erg" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferg-lang%2Ferg", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferg-lang%2Ferg'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b8bc4e33eb23246566f08c9efd3916ebd41c1f3f
[INFO] fixing erg-lang/erg against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferg-lang%2Ferg" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/erg-lang/erg
[INFO] finished tweaking git repo https://github.com/erg-lang/erg
[INFO] tweaked toml for git repo https://github.com/erg-lang/erg written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/erg-lang/erg on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/erg-lang/erg already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] dabbb435abea4137c2cbf58562119ba905794a571798f258fbc54bc44651d1d1
[INFO] running `Command { std: "docker" "start" "dabbb435abea4137c2cbf58562119ba905794a571798f258fbc54bc44651d1d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dabbb435abea4137c2cbf58562119ba905794a571798f258fbc54bc44651d1d1" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dabbb435abea4137c2cbf58562119ba905794a571798f258fbc54bc44651d1d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dabbb435abea4137c2cbf58562119ba905794a571798f258fbc54bc44651d1d1" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating crates/erg_common/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/erg_proc_macros/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/erg_compiler/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/erg_parser/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/erg_linter/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/els/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling erg_common v0.6.53 (/opt/rustwide/workdir/crates/erg_common)
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]     Checking unicode-ident v1.0.22
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]    Migrating crates/erg_common/build.rs from 2021 edition to 2024
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking proc-macro2 v1.0.103
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking quote v1.0.42
[INFO] [stderr]     Checking erg_proc_macros v0.6.53 (/opt/rustwide/workdir/crates/erg_proc_macros)
[INFO] [stderr]    Migrating crates/erg_proc_macros/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Migrating crates/erg_common/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]        Fixed crates/erg_common/dict.rs (2 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_common/set.rs:269:29
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let mut res = set! {};
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `res` calls a custom destructor
[INFO] [stdout]     |             `res` will be dropped later as of Edition 2024
[INFO] [stdout] 269 |         while let Some(s) = i.next() {
[INFO] [stdout]     |                             ^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 274 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed crates/erg_common/set.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_common/lib.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 161 |     for x in i {
[INFO] [stdout]     |              -
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 162 |         match f(x) {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed crates/erg_common/macros.rs (69 fixes)
[INFO] [stderr]        Fixed crates/erg_common/shared.rs (1 fix)
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_common/set.rs:269:29
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let mut res = set! {};
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `res` calls a custom destructor
[INFO] [stdout]     |             `res` will be dropped later as of Edition 2024
[INFO] [stdout] 269 |         while let Some(s) = i.next() {
[INFO] [stdout]     |                             ^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 274 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_common/lib.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 161 |     for x in i {
[INFO] [stdout]     |              -
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 162 |         match f(x) {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling erg_compiler v0.6.53 (/opt/rustwide/workdir/crates/erg_compiler)
[INFO] [stderr]    Compiling erg v0.6.53 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking lsp-types v0.93.2
[INFO] [stderr]    Migrating crates/erg_compiler/build.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_common/set.rs:269:29
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let mut res = set! {};
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `res` calls a custom destructor
[INFO] [stdout]     |             `res` will be dropped later as of Edition 2024
[INFO] [stdout] 269 |         while let Some(s) = i.next() {
[INFO] [stdout]     |                             ^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 274 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_common/lib.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 161 |     for x in i {
[INFO] [stdout]     |              -
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 162 |         match f(x) {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking erg_parser v0.6.53 (/opt/rustwide/workdir/crates/erg_parser)
[INFO] [stderr]    Migrating build.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/erg_parser/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking molc v0.3.0
[INFO] [stderr]        Fixed crates/erg_parser/ast.rs (12 fixes)
[INFO] [stderr]        Fixed crates/erg_parser/visitor.rs (1 fix)
[INFO] [stderr]        Fixed crates/erg_parser/desugar.rs (6 fixes)
[INFO] [stderr]        Fixed crates/erg_parser/typespec.rs (2 fixes)
[INFO] [stderr]        Fixed crates/erg_parser/parse.rs (3 fixes)
[INFO] [stderr]    Migrating crates/erg_compiler/lib.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/build_package.rs:956:19
[INFO] [stdout]     |
[INFO] [stdout] 950 |             let mut builder = HIRBuilder::inherit_with_name(cfg, name, shared.clone());
[INFO] [stdout]     |                 -----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `builder` calls a custom destructor
[INFO] [stdout]     |                 `builder` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 956 |             match builder.build_from_ast(ast, mode) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 979 |         };
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed crates/erg_compiler/transpile.rs (5 fixes)
[INFO] [stderr]    Migrating crates/erg_parser/tests/tokenize_test.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:2410:32
[INFO] [stdout]      |
[INFO] [stdout] 2410 |         while let Some(expr) = args.try_remove(0) {
[INFO] [stdout]      |                        ----    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |       |
[INFO] [stdout]      |                        |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `expr` calls a custom destructor
[INFO] [stdout]      |                        `expr` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2415 |             let Expr::Lambda(lambda) = expr else {
[INFO] [stdout]      |                              ------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `lambda` calls a custom destructor
[INFO] [stdout]      |                              `lambda` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2440 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lambda` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lambda` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed crates/erg_compiler/context/initialize/mod.rs (2 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/context/instantiate.rs (11 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/context/generalize.rs (2 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/ty/typaram.rs (1 fix)
[INFO] [stderr]        Fixed crates/erg_compiler/ty/free.rs (7 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/context/initialize/const_func.rs (8 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/error/mod.rs (14 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/context/instantiate_spec.rs (1 fix)
[INFO] [stderr]        Fixed crates/erg_compiler/context/register.rs (70 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/declare.rs (3 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/lower.rs (6 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/context/compare.rs (22 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/context/inquire.rs (18 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/ty/const_subr.rs (4 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/codegen.rs (3 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/context/mod.rs (1 fix)
[INFO] [stderr]        Fixed crates/erg_compiler/context/unify.rs (4 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/ty/constructors.rs (2 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/context/eval.rs (23 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/ty/value.rs (9 fixes)
[INFO] [stderr]        Fixed crates/erg_compiler/module/cache.rs (1 fix)
[INFO] [stderr]        Fixed crates/erg_compiler/ty/mod.rs (9 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:2945:31
[INFO] [stdout]      |
[INFO] [stdout] 2945 |         while let Some(arg) = args.try_remove_pos(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 2946 |             self.emit_expr(arg.expr);
[INFO] [stdout] 2947 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:2955:31
[INFO] [stdout]      |
[INFO] [stdout] 2955 |         while let Some(arg) = args.try_remove_kw(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2958 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:3000:31
[INFO] [stdout]      |
[INFO] [stdout] 3000 |         while let Some(arg) = args.try_remove_pos(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3001 |             self.emit_expr(arg.expr);
[INFO] [stdout] 3002 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:3112:39
[INFO] [stdout]      |
[INFO] [stdout] 3112 |                 while let Some(arg) = lis.elems.try_remove_pos(0) {
[INFO] [stdout]      |                                ---    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |      |
[INFO] [stdout]      |                                |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                `arg` calls a custom destructor
[INFO] [stdout]      |                                `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3113 |                     self.emit_expr(arg.expr);
[INFO] [stdout] 3114 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:3158:39
[INFO] [stdout]      |
[INFO] [stdout] 3158 |                 while let Some(arg) = tup.elems.try_remove_pos(0) {
[INFO] [stdout]      |                                ---    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |      |
[INFO] [stdout]      |                                |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                `arg` calls a custom destructor
[INFO] [stdout]      |                                `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3159 |                     self.emit_expr(arg.expr);
[INFO] [stdout] 3160 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:3178:39
[INFO] [stdout]      |
[INFO] [stdout] 3178 |                 while let Some(arg) = set.elems.try_remove_pos(0) {
[INFO] [stdout]      |                                ---    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |      |
[INFO] [stdout]      |                                |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                `arg` calls a custom destructor
[INFO] [stdout]      |                                `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3179 |                     self.emit_expr(arg.expr);
[INFO] [stdout] 3180 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/compare.rs:1408:23
[INFO] [stdout]      |
[INFO] [stdout] 1404 |                 let lt = self.get_tp_t(l).ok()?;
[INFO] [stdout]      |                     --
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `lt` calls a custom destructor
[INFO] [stdout]      |                     `lt` will be dropped later as of Edition 2024
[INFO] [stdout] 1405 |                 let pt = self.get_tp_t(p).ok()?;
[INFO] [stdout]      |                     --
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `pt` calls a custom destructor
[INFO] [stdout]      |                     `pt` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1408 |                 match (l_inf, l_sup) { (Some(inf), Some(sup)) => {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1459 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lt` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lt` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pt` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pt` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/compare.rs:1676:31
[INFO] [stdout]      |
[INFO] [stdout] 1676 |                         match self.union_tp(l_v, r_v) { Some(tp) => {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1677 |                             tps.insert(l_k.clone(), tp);
[INFO] [stdout]      |                             ---------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1681 |                     } else {
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/compare.rs:1989:31
[INFO] [stdout]      |
[INFO] [stdout] 1989 |                         match self.intersection_tp(l_v, r_v) { Some(tp) => {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1990 |                             tps.insert(l_k.clone(), tp);
[INFO] [stdout]      |                             ---------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1994 |                     } else {
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/compare.rs:2355:45
[INFO] [stdout]      |
[INFO] [stdout] 2354 |                 for pred in preds {
[INFO] [stdout]      |                             -----
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2355 |                     if let Some(new_pred) = self.eliminate_type_mismatched_preds(var, t, pred) {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2358 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/eval.rs:675:14
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let field = self
[INFO] [stdout]     |             -----
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `field` calls a custom destructor
[INFO] [stdout]     |             `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 675 |             &obj.t(),
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 679 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/eval.rs:714:19
[INFO] [stdout]     |
[INFO] [stdout] 714 |             match self.eval_const_expr(&arg.expr) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 715 |                 Ok(val) => {
[INFO] [stdout] 716 |                     evaluated_kw_args.insert(arg.keyword.inspect().clone(), val);
[INFO] [stdout]     |                     ------------------------------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 719 |                     evaluated_kw_args.insert(arg.keyword.inspect().clone(), val);
[INFO] [stdout]     |                     ------------------------------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 723 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:1152:27
[INFO] [stdout]      |
[INFO] [stdout] 1152 |                       match (
[INFO] [stdout]      |  ___________________________^
[INFO] [stdout] 1153 | |                         self.eval_const_expr(&elem.key),
[INFO] [stdout] 1154 | |                         self.eval_const_expr(&elem.value),
[INFO] [stdout] 1155 | |                     ) {
[INFO] [stdout]      | |                     ^
[INFO] [stdout]      | |                     |
[INFO] [stdout]      | |_____________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                       up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1156 |                           (Ok(key), Ok(value)) => {
[INFO] [stdout] 1157 |                               elems.insert(key, value);
[INFO] [stdout]      |                               ------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1160 |                               elems.insert(key, value);
[INFO] [stdout]      |                               ------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1164 |                               elems.insert(key, value);
[INFO] [stdout]      |                               ------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                               `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1168 |                               elems.insert(key, value);
[INFO] [stdout]      |                               ------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                               `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1173 |                   }
[INFO] [stdout]      |                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:1360:19
[INFO] [stdout]      |
[INFO] [stdout] 1359 |               let expr = self.eval_const_expr(&sig.default_val)?;
[INFO] [stdout]      |                   ----
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   `expr` calls a custom destructor
[INFO] [stdout]      |                   `expr` will be dropped later as of Edition 2024
[INFO] [stdout] 1360 |               match self.instantiate_param_ty(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1361 | |                 &sig.sig,
[INFO] [stdout] 1362 | |                 None,
[INFO] [stdout] 1363 | |                 &mut tmp_tv_cache,
[INFO] [stdout] ...    |
[INFO] [stdout] 1366 | |                 false,
[INFO] [stdout] 1367 | |             ) {
[INFO] [stdout]      | |             ^
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1374 |           }
[INFO] [stdout]      |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2001:27
[INFO] [stdout]      |
[INFO] [stdout] 2000 |                 for (name, tp) in fields.into_iter() {
[INFO] [stdout]      |                                   ------------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2001 |                     match self.eval_tp(tp) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2002 |                         Ok(tp) => {
[INFO] [stdout] 2003 |                             new_fields.insert(name, tp);
[INFO] [stdout]      |                             ---------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2006 |                             new_fields.insert(name, tp);
[INFO] [stdout]      |                             ---------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2010 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2033:27
[INFO] [stdout]      |
[INFO] [stdout] 2032 |                 for tp in tps {
[INFO] [stdout]      |                           ---
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2033 |                     match self.eval_tp(tp) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2040 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2056:27
[INFO] [stdout]      |
[INFO] [stdout] 2055 |                 for tp in tps {
[INFO] [stdout]      |                           ---
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2056 |                     match self.eval_tp(tp) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2063 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2069:27
[INFO] [stdout]      |
[INFO] [stdout] 2068 |                 for (k, v) in dic.into_iter() {
[INFO] [stdout]      |                               ---------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2069 |                     match (self.eval_tp(k), self.eval_tp(v)) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                           up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2070 |                         (Ok(k), Ok(v)) => {
[INFO] [stdout] 2071 |                             new_dic.insert(k, v);
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2074 |                             new_dic.insert(k, v);
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2078 |                             new_dic.insert(k, v);
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                             `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2082 |                             new_dic.insert(k, v);
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                             `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2087 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2093:27
[INFO] [stdout]      |
[INFO] [stdout] 2092 |                 for v in set.into_iter() {
[INFO] [stdout]      |                          ---------------
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2093 |                     match self.eval_tp(v) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2102 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2108:27
[INFO] [stdout]      |
[INFO] [stdout] 2107 |                 for (name, tp) in dict.into_iter() {
[INFO] [stdout]      |                                   ----------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2108 |                     match self.eval_tp(tp) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2109 |                         Ok(tp) => {
[INFO] [stdout] 2110 |                             fields.insert(name, tp);
[INFO] [stdout]      |                             -----------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2113 |                             fields.insert(name, tp);
[INFO] [stdout]      |                             -----------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2117 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2410:27
[INFO] [stdout]      |
[INFO] [stdout] 2409 |                 for and in ands.into_iter() {
[INFO] [stdout]      |                            ----------------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2410 |                     match self.eval_t_params(and, level, t_loc) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2419 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2432:27
[INFO] [stdout]      |
[INFO] [stdout] 2431 |                 for or in ors.into_iter() {
[INFO] [stdout]      |                           ---------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2432 |                     match self.eval_t_params(or, level, t_loc) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2441 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2456:23
[INFO] [stdout]      |
[INFO] [stdout] 2455 |                 set_recursion_limit!(Ok(typ.structuralize()), 128);
[INFO] [stdout]      |                 --------------------------------------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `counter` calls a custom destructor
[INFO] [stdout]      |                 `counter` will be dropped later as of Edition 2024
[INFO] [stdout] 2456 |                 match self.eval_t_params(*typ, level, t_loc) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2460 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `counter` invokes this custom destructor
[INFO] [stdout]     --> crates/erg_common/macros.rs:610:1
[INFO] [stdout]      |
[INFO] [stdout]  610 | impl Drop for RecursionCounter {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2464:27
[INFO] [stdout]      |
[INFO] [stdout] 2463 |                 for (name, ty) in rec.into_iter() {
[INFO] [stdout]      |                                   ---------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2464 |                     match self.eval_t_params(ty, level, t_loc) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2465 |                         Ok(ty) => {
[INFO] [stdout] 2466 |                             fields.insert(name, ty);
[INFO] [stdout]      |                             -----------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2469 |                             fields.insert(name, tp);
[INFO] [stdout]      |                             -----------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2473 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2479:27
[INFO] [stdout]      |
[INFO] [stdout] 2478 |                 for (name, ty) in tuple.into_iter() {
[INFO] [stdout]      |                                   -----------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2479 |                     match self.eval_t_params(ty, level, t_loc) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2486 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2606:23
[INFO] [stdout]      |
[INFO] [stdout] 2579 |               match self.validate_and_project(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 2580 | |                 &sub,
[INFO] [stdout] 2581 | |                 opt_sup.as_ref(),
[INFO] [stdout] 2582 | |                 &rhs,
[INFO] [stdout] ...    |
[INFO] [stdout] 2586 | |                 t_loc,
[INFO] [stdout] 2587 | |             ) {
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2606 |                   match self.validate_and_project(
[INFO] [stdout]      |  _______________________^
[INFO] [stdout]      | |_______________________|
[INFO] [stdout] 2607 | |                     &sub,
[INFO] [stdout] 2608 | |                     opt_sup.as_ref(),
[INFO] [stdout] 2609 | |                     &rhs,
[INFO] [stdout] ...    |
[INFO] [stdout] 2613 | |                     t_loc,
[INFO] [stdout] 2614 | |                 ) {
[INFO] [stdout]      | |                 ^
[INFO] [stdout]      | |_________________|
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2619 | |             }
[INFO] [stdout]      | |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3330:23
[INFO] [stdout]      |
[INFO] [stdout] 3329 |                 let old = proj(*lhs.clone(), rhs.clone());
[INFO] [stdout]      |                     ---
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `old` calls a custom destructor
[INFO] [stdout]      |                     `old` will be dropped later as of Edition 2024
[INFO] [stdout] 3330 |                 match self.eval_proj(*lhs, rhs, self.level, &()) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3334 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `old` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `old` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3341:23
[INFO] [stdout]      |
[INFO] [stdout] 3340 |                 let old = proj_call(*lhs.clone(), attr_name.clone(), args.clone());
[INFO] [stdout]      |                     ---
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `old` calls a custom destructor
[INFO] [stdout]      |                     `old` will be dropped later as of Edition 2024
[INFO] [stdout] 3341 |                 match self.eval_proj_call_t(*lhs, attr_name, args, self.level, &()) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3345 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `old` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `old` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3750:19
[INFO] [stdout]      |
[INFO] [stdout] 3747 |             let Some(lhs) = lhs else {
[INFO] [stdout]      |                      ---
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `lhs` calls a custom destructor
[INFO] [stdout]      |                      `lhs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3750 |             match self.convert_tp_into_value(lhs.clone()) { Ok(value) => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3757 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lhs` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lhs` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3761:28
[INFO] [stdout]      |
[INFO] [stdout] 3758 |         for pos_arg in args.into_iter() {
[INFO] [stdout]      |             -------    ----------------
[INFO] [stdout]      |             |          |
[INFO] [stdout]      |             |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |             |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |             `pos_arg` calls a custom destructor
[INFO] [stdout]      |             `pos_arg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3761 |             } _ => { match self.eval_tp_into_value(pos_arg.clone()) { Ok(value) => {
[INFO] [stdout]      |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                            up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3765 |             }}}}
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pos_arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pos_arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3759:19
[INFO] [stdout]      |
[INFO] [stdout] 3758 |         for pos_arg in args.into_iter() {
[INFO] [stdout]      |             -------    ----------------
[INFO] [stdout]      |             |          |
[INFO] [stdout]      |             |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |             |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |             `pos_arg` calls a custom destructor
[INFO] [stdout]      |             `pos_arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3759 |             match self.convert_tp_into_value(pos_arg.clone()) { Ok(value) => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3766 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pos_arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pos_arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3854:34
[INFO] [stdout]      |
[INFO] [stdout] 3850 |             if let Ok(obj) = ty_ctx.get_const_local(&Token::symbol(&attr_name), &self.name) {
[INFO] [stdout]      |                              --------------------------------------------------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3854 |                 if let Ok(obj) = methods.get_const_local(&Token::symbol(&attr_name), &self.name) {
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3857 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3931:34
[INFO] [stdout]      |
[INFO] [stdout] 3927 |             if let Ok(obj) = ty_ctx.get_const_local(&Token::symbol(&attr_name), &self.name) {
[INFO] [stdout]      |                              --------------------------------------------------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3931 |                 if let Ok(obj) = methods.get_const_local(&Token::symbol(&attr_name), &self.name) {
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3934 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:4038:27
[INFO] [stdout]      |
[INFO] [stdout] 4037 |                 for arg in args {
[INFO] [stdout]      |                            ----
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 4038 |                     match self.eval_tp(arg) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 4045 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:4058:23
[INFO] [stdout]      |
[INFO] [stdout] 4046 |                 let res = if let Some(name) = name {
[INFO] [stdout]      |                     ---
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `res` calls a custom destructor
[INFO] [stdout]      |                     `res` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 4058 |                 match self.convert_tp_into_value(tp) { Ok(v) => {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 4070 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/generalize.rs:940:45
[INFO] [stdout]     |
[INFO] [stdout] 938 |                         let mut union = Never;
[INFO] [stdout]     |                             ---------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `union` calls a custom destructor
[INFO] [stdout]     |                             `union` will be dropped later as of Edition 2024
[INFO] [stdout] 939 |                         for tp in tys {
[INFO] [stdout] 940 |                             if let Ok(ty) = self.ctx.convert_tp_into_type(tp.clone()) {
[INFO] [stdout]     |                                       --    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |     |
[INFO] [stdout]     |                                       |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                       |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                       `ty` calls a custom destructor
[INFO] [stdout]     |                                       `ty` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 943 |                         }
[INFO] [stdout]     |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `union` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `union` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ty` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ty` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/generalize.rs:1028:31
[INFO] [stdout]      |
[INFO] [stdout] 1023 |                     match self.deref_tyvar(mem::take(d_param.typ_mut())) {
[INFO] [stdout]      |                           ----------------------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1028 |                         match self.deref_tyvar(mem::take(default)) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1032 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/hint.rs:301:52
[INFO] [stdout]     |
[INFO] [stdout] 301 |                     let sup = *option_enum_unwrap!(sup.typarams().first()?.clone(), TyParam::Type)?;
[INFO] [stdout]     |                                ----------------------------------^^^^^^^^^^^^^^^^^------------------ now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |                                |                   |
[INFO] [stdout]     |                                |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                |                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/initialize/const_func.rs:246:15
[INFO] [stdout]     |
[INFO] [stdout] 246 |           match (
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 247 | |             ctx.convert_value_into_type(key.clone()),
[INFO] [stdout] 248 | |             ctx.convert_value_into_type(k.clone()),
[INFO] [stdout] 249 | |         ) {
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 250 |               (Ok(idx), Ok(kt))
[INFO] [stdout] 251 |                   if dict.len() == 1 || ctx.subtype_of(&idx.lower_bounded(), &kt.lower_bounded()) =>
[INFO] [stdout]     |                                                         -------------------   ------------------
[INFO] [stdout]     |                                                         |                     |
[INFO] [stdout]     |                                                         |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                         |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 257 |       }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/initialize/const_func.rs:282:15
[INFO] [stdout]     |
[INFO] [stdout] 282 |           match (
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 283 | |             ctx.convert_tp_into_type(key.clone()),
[INFO] [stdout] 284 | |             ctx.convert_tp_into_type(k.clone()),
[INFO] [stdout] 285 | |         ) {
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 286 |               (Ok(idx), Ok(kt))
[INFO] [stdout] 287 |                   if dict.len() == 1 || ctx.subtype_of(&idx.lower_bounded(), &kt.lower_bounded()) =>
[INFO] [stdout]     |                                                         -------------------   ------------------
[INFO] [stdout]     |                                                         |                     |
[INFO] [stdout]     |                                                         |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                         |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 293 |       }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/initialize/const_func.rs:1646:19
[INFO] [stdout]      |
[INFO] [stdout] 1642 |             let coerced = ctx.coerce(t.clone(), &()).unwrap_or(t);
[INFO] [stdout]      |                 -------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `coerced` calls a custom destructor
[INFO] [stdout]      |                 `coerced` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1645 |             let der = coerced.derefine();
[INFO] [stdout]      |                 ---
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `der` calls a custom destructor
[INFO] [stdout]      |                 `der` will be dropped later as of Edition 2024
[INFO] [stdout] 1646 |             match (inf, sup) {
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1650 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `coerced` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `coerced` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `der` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `der` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/initialize/mod.rs:1180:19
[INFO] [stdout]      |
[INFO] [stdout] 1180 |             match self.trait_impls().get_mut(&impl_trait.qual_name()) { Some(mut impls) => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        ---------
[INFO] [stdout]      |                   |                                                          |
[INFO] [stdout]      |                   |                                                          `impls` calls a custom destructor
[INFO] [stdout]      |                   |                                                          `impls` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1196 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:3100:1
[INFO] [stdout]      |
[INFO] [stdout] 3100 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for MappedRwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `impls` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:3100:1
[INFO] [stdout]      |
[INFO] [stdout] 3100 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for MappedRwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/inquire.rs:931:41
[INFO] [stdout]     |
[INFO] [stdout] 926 |                 let list = UndoableLinkedList::new();
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `list` calls a custom destructor
[INFO] [stdout]     |                     `list` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 931 |                 if let Triple::Ok(vi) = self.get_attr_info(obj, ident, input, namespace, expect) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 936 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `list` invokes this custom destructor
[INFO] [stdout]    --> crates/erg_compiler/context/eval.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Drop for UndoableLinkedList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/inquire.rs:963:27
[INFO] [stdout]     |
[INFO] [stdout] 952 |                 match ctx.rec_get_var_info(ident, AccessKind::BoundAttr, input, namespace) {
[INFO] [stdout]     |                       --------------------------------------------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 963 |                     match ctx.rec_get_var_info(ident, AccessKind::BoundAttr, input, namespace) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 972 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:1008:27
[INFO] [stdout]      |
[INFO] [stdout]  997 |                 match ctx.rec_get_var_info(ident, AccessKind::BoundAttr, input, namespace) {
[INFO] [stdout]      |                       --------------------------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1008 |                     match ctx.rec_get_var_info(ident, AccessKind::BoundAttr, input, namespace) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1017 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:1102:27
[INFO] [stdout]      |
[INFO] [stdout] 1100 |                   let mut info = Triple::<VarInfo, _>::None;
[INFO] [stdout]      |                       --------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       `info` calls a custom destructor
[INFO] [stdout]      |                       `info` will be dropped later as of Edition 2024
[INFO] [stdout] 1101 |                   for ty in tys {
[INFO] [stdout] 1102 |                       match (
[INFO] [stdout]      |  ___________________________^
[INFO] [stdout] 1103 | |                         self.get_attr_info_from_attributive(ty, ident, namespace),
[INFO] [stdout] 1104 | |                         &info,
[INFO] [stdout] 1105 | |                     ) {
[INFO] [stdout]      | |                     ^
[INFO] [stdout]      | |                     |
[INFO] [stdout]      | |_____________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1106 |                           (Triple::Ok(vi), Triple::Ok(vi_)) => {
[INFO] [stdout]      |                                       --
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       `vi` calls a custom destructor
[INFO] [stdout]      |                                       `vi` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1126 |                   }
[INFO] [stdout]      |                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `info` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `info` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `vi` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `vi` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:1266:43
[INFO] [stdout]      |
[INFO] [stdout] 1261 |                           sub.non_default_params.remove(0);
[INFO] [stdout]      |                           --------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1266 |                       if let Ok(instance) = self.instantiate(ty.clone(), obj) {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                             up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1267 |                           let subst = self
[INFO] [stdout]      |  _____________________________________-
[INFO] [stdout] 1268 | |                             .substitute_call(
[INFO] [stdout] 1269 | |                                 obj,
[INFO] [stdout] 1270 | |                                 &None,
[INFO] [stdout] ...    |
[INFO] [stdout] 1275 | |                                 self,
[INFO] [stdout] 1276 | |                             )
[INFO] [stdout]      | |                             -
[INFO] [stdout]      | |                             |
[INFO] [stdout]      | |_____________________________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 1277 |                               .is_ok();
[INFO] [stdout] 1278 |                           let eval = self.eval_t_params(instance, self.level, obj).is_ok();
[INFO] [stdout]      |                                      ---------------------------------------------
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1284 |                   }
[INFO] [stdout]      |                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:1926:14
[INFO] [stdout]      |
[INFO] [stdout] 1918 |         let other = self.readable_type(other.clone());
[INFO] [stdout]      |             -----
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `other` calls a custom destructor
[INFO] [stdout]      |             `other` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1926 |             &mono("Callable"),
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |              |
[INFO] [stdout]      |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1931 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `other` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `other` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:2435:41
[INFO] [stdout]      |
[INFO] [stdout] 2414 |                       let call_instance = self.instantiate_def_type(&call_vi.t)?;
[INFO] [stdout]      |                           -------------   --------------------------------------
[INFO] [stdout]      |                           |               |
[INFO] [stdout]      |                           |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           `call_instance` calls a custom destructor
[INFO] [stdout]      |                           `call_instance` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2435 |                   .get_method_context_of(&mono("GenericCallable"))
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                           up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2440 |                   let call_instance = self.instantiate_def_type(&call_vi.t)?;
[INFO] [stdout]      |                       -------------   --------------------------------------
[INFO] [stdout]      |                       |               |
[INFO] [stdout]      |                       |               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                       |               `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 2441 |                   if !call_instance.contains_intersec(instance) {
[INFO] [stdout] 2442 |                       let instance = match self.substitute_call(
[INFO] [stdout]      |  __________________________________________-
[INFO] [stdout] 2443 | |                         obj,
[INFO] [stdout] 2444 | |                         attr_name,
[INFO] [stdout] 2445 | |                         &call_instance,
[INFO] [stdout] ...    |
[INFO] [stdout] 2449 | |                         namespace,
[INFO] [stdout] 2450 | |                     )? {
[INFO] [stdout]      | |                      -
[INFO] [stdout]      | |                      |
[INFO] [stdout]      | |                      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                      `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      | |______________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                        `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2457 |               } _ => {}}}
[INFO] [stdout]      |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `call_instance` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `call_instance` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/instantiate_spec.rs:389:19
[INFO] [stdout]     |
[INFO] [stdout] 386 |               let opt_decl_t = opt_decl_sig_t
[INFO] [stdout]     |                   ----------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `opt_decl_t` calls a custom destructor
[INFO] [stdout]     |                   `opt_decl_t` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 389 |               match self.instantiate_typespec_full(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 390 | |                 &t_spec.t_spec,
[INFO] [stdout] 391 | |                 opt_decl_t.as_ref(),
[INFO] [stdout] 392 | |                 &mut tmp_tv_cache,
[INFO] [stdout] 393 | |                 mode,
[INFO] [stdout] 394 | |                 false,
[INFO] [stdout] 395 | |             ) {
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |           } else if self.cfg.no_infer_fn_type {
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `opt_decl_t` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `opt_decl_t` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/instantiate_spec.rs:1581:36
[INFO] [stdout]      |
[INFO] [stdout] 1572 |                     let pred = match self
[INFO] [stdout]      |                         ----
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         `pred` calls a custom destructor
[INFO] [stdout]      |                         `pred` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1581 |                     if let Ok(t) = self.instantiate_tp_as_type(iter, set) {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                    |
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1589 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pred` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pred` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/instantiate_spec.rs:2992:15
[INFO] [stdout]      |
[INFO] [stdout] 2991 |         let mut dummy = TyVarCache::new(self.level, self);
[INFO] [stdout]      |             ---------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `dummy` calls a custom destructor
[INFO] [stdout]      |             `dummy` will be dropped later as of Edition 2024
[INFO] [stdout] 2992 |         match self.instantiate_const_expr(&const_expr, None, &mut dummy, false) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3016 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `dummy` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `dummy` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/unify.rs:2104:38
[INFO] [stdout]      |
[INFO] [stdout] 2102 |                 let mut unified = Never;
[INFO] [stdout]      |                     -----------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `unified` calls a custom destructor
[INFO] [stdout]      |                     `unified` will be dropped later as of Edition 2024
[INFO] [stdout] 2103 |                 for ty in tys {
[INFO] [stdout] 2104 |                     if let Some(t) = self.unify(ty, other) {
[INFO] [stdout]      |                                 -    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                 |    |
[INFO] [stdout]      |                                 |    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 |    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 `t` calls a custom destructor
[INFO] [stdout]      |                                 `t` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2107 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `unified` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `unified` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/unify.rs:2117:38
[INFO] [stdout]      |
[INFO] [stdout] 2115 |                 let mut unified = Obj;
[INFO] [stdout]      |                     -----------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `unified` calls a custom destructor
[INFO] [stdout]      |                     `unified` will be dropped later as of Edition 2024
[INFO] [stdout] 2116 |                 for ty in tys {
[INFO] [stdout] 2117 |                     if let Some(t) = self.unify(ty, other) {
[INFO] [stdout]      |                                 -    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                 |    |
[INFO] [stdout]      |                                 |    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 |    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 `t` calls a custom destructor
[INFO] [stdout]      |                                 `t` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2120 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `unified` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `unified` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/mod.rs:1594:41
[INFO] [stdout]      |
[INFO] [stdout] 1591 |                 let tp = self.detach_tp(tp.clone(), &mut tv_ctx);
[INFO] [stdout]      |                     --
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `tp` calls a custom destructor
[INFO] [stdout]      |                     `tp` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1594 |                         if let Ok(tv) = self.convert_tp_into_type(tp.clone()) {
[INFO] [stdout]      |                                   --    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                   |     |
[INFO] [stdout]      |                                   |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                   `tv` calls a custom destructor
[INFO] [stdout]      |                                   `tv` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1598 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `tp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `tp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `tv` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `tv` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/declare.rs:221:49
[INFO] [stdout]     |
[INFO] [stdout] 214 |                   let mut ident = hir::Identifier::bare(attr.ident);
[INFO] [stdout]     |                       ---------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `ident` calls a custom destructor
[INFO] [stdout]     |                       `ident` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 221 |                           if let Triple::Ok(vi) = ctx.rec_get_var_info(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 222 | |                             &ident.raw,
[INFO] [stdout] 223 | |                             AccessKind::UnboundAttr,
[INFO] [stdout] 224 | |                             self.input(),
[INFO] [stdout] 225 | |                             &self.module.context,
[INFO] [stdout] 226 | |                         ) {
[INFO] [stdout]     | |                         ^
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |_________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 230 |                       }
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ident` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ident` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/lint.rs:272:19
[INFO] [stdout]     |
[INFO] [stdout] 272 |             match self.lower_chunk(chunk, None) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 276 |                 Err((chunk, errs)) => {
[INFO] [stdout]     |                      -----
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `chunk` calls a custom destructor
[INFO] [stdout]     |                      `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 283 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/lower.rs:569:19
[INFO] [stdout]     |
[INFO] [stdout] 565 |           for (elem, expect) in elems
[INFO] [stdout]     |  ____________________------_____-
[INFO] [stdout]     | |                    |
[INFO] [stdout]     | |                    `expect` calls a custom destructor
[INFO] [stdout]     | |                    `expect` will be dropped later as of Edition 2024
[INFO] [stdout] 566 | |             .into_iter()
[INFO] [stdout] 567 | |             .zip(expect_ts.into_iter().chain(std::iter::repeat(None)))
[INFO] [stdout]     | |                                                                      -
[INFO] [stdout]     | |                                                                      |
[INFO] [stdout]     | |______________________________________________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 568 |           {
[INFO] [stdout] 569 |               match self.lower_expr(elem.expr, expect.as_ref()) {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 576 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expect` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expect` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/lower.rs:1439:19
[INFO] [stdout]      |
[INFO] [stdout] 1439 |             match self.lower_expr(arg.expr, param) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1448 |                 Err((expr, es)) => {
[INFO] [stdout]      |                      ----
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `expr` calls a custom destructor
[INFO] [stdout]      |                      `expr` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1455 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/lower.rs:1857:19
[INFO] [stdout]      |
[INFO] [stdout] 1857 |             match self.lower_expr(default.default_val, default_t) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1858 |                 Ok(default_val) => {
[INFO] [stdout]      |                    -----------
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    `default_val` calls a custom destructor
[INFO] [stdout]      |                    `default_val` will be dropped later as of Edition 2024
[INFO] [stdout] 1859 |                     let sig = match self.lower_non_default_param(default.sig) {
[INFO] [stdout]      |                                     -----------------------------------------
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1889 |                 Err((_default, es)) => errs.extend(es),
[INFO] [stdout]      |                      --------
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `_default` calls a custom destructor
[INFO] [stdout]      |                      `_default` will be dropped later as of Edition 2024
[INFO] [stdout] 1890 |             }
[INFO] [stdout] 1891 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `default_val` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `default_val` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `_default` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `_default` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/lower.rs:2292:15
[INFO] [stdout]      |
[INFO] [stdout] 2268 |         let existing_vi = sig
[INFO] [stdout]      |             -----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `existing_vi` calls a custom destructor
[INFO] [stdout]      |             `existing_vi` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2272 |         let existing_t = existing_vi.as_ref().map(|vi| vi.t.clone());
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `existing_t` calls a custom destructor
[INFO] [stdout]      |             `existing_t` will be dropped later as of Edition 2024
[INFO] [stdout] 2273 |         let expect_body_t = sig
[INFO] [stdout]      |             -------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `expect_body_t` calls a custom destructor
[INFO] [stdout]      |             `expect_body_t` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2292 |         match self.lower_block(body.block, expect_body.or(expect_body_t.as_ref())) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2425 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `existing_vi` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `existing_vi` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `existing_t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `existing_t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expect_body_t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expect_body_t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/lower.rs:3936:19
[INFO] [stdout]      |
[INFO] [stdout] 3936 |             match self.lower_chunk(chunk, None) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3940 |                 Err((chunk, errs)) => {
[INFO] [stdout]      |                      -----
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `chunk` calls a custom destructor
[INFO] [stdout]      |                      `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3947 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/transpile.rs:927:45
[INFO] [stdout]     |
[INFO] [stdout] 927 |         while let Some(Expr::Lambda(arm)) = call.args.try_remove(0) {
[INFO] [stdout]     |                                     ---     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |       |
[INFO] [stdout]     |                                     |       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     |       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                     `arm` calls a custom destructor
[INFO] [stdout]     |                                     `arm` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 940 |                             let values = ValueObj::vec_from_const_args(enum_t.clone());
[INFO] [stdout]     |                                 ------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `values` calls a custom destructor
[INFO] [stdout]     |                                 `values` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 972 |                             let values = ValueObj::vec_from_const_args(enum_t.clone());
[INFO] [stdout]     |                                 ------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 990 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arm` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arm` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `values` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `values` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking erg_linter v0.6.53 (/opt/rustwide/workdir/crates/erg_linter)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/transpile.rs:1029:31
[INFO] [stdout]      |
[INFO] [stdout] 1029 |         while let Some(arg) = args.try_remove_pos(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1032 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking els v0.1.65 (/opt/rustwide/workdir/crates/els)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/transpile.rs:1033:31
[INFO] [stdout]      |
[INFO] [stdout] 1033 |         while let Some(arg) = args.try_remove_kw(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1040 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/transpile.rs:1306:27
[INFO] [stdout]      |
[INFO] [stdout] 1305 |                 for elem in lis.elems.pos_args {
[INFO] [stdout]      |                     ----    ------------------
[INFO] [stdout]      |                     |       |
[INFO] [stdout]      |                     |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                     `elem` calls a custom destructor
[INFO] [stdout]      |                     `elem` will be dropped later as of Edition 2024
[INFO] [stdout] 1306 |                     match self.expr_into_value(elem.expr) { Some(val) => {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1311 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/transpile.rs:1325:27
[INFO] [stdout]      |
[INFO] [stdout] 1324 |                 for elem in tup.elems.pos_args {
[INFO] [stdout]      |                     ----    ------------------
[INFO] [stdout]      |                     |       |
[INFO] [stdout]      |                     |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                     `elem` calls a custom destructor
[INFO] [stdout]      |                     `elem` will be dropped later as of Edition 2024
[INFO] [stdout] 1325 |                     match self.expr_into_value(elem.expr) { Some(val) => {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1330 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/ty/free.rs:683:15
[INFO] [stdout]     |
[INFO] [stdout] 681 |         let linked = self.get_linked()?;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `linked` calls a custom destructor
[INFO] [stdout]     |             `linked` will be dropped later as of Edition 2024
[INFO] [stdout] 682 |         let fv = linked.as_free()?;
[INFO] [stdout] 683 |         match fv.linked_free() { Some(fv) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 688 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `linked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `linked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/ty/free.rs:775:15
[INFO] [stdout]     |
[INFO] [stdout] 773 |         let linked = self.get_linked()?;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `linked` calls a custom destructor
[INFO] [stdout]     |             `linked` will be dropped later as of Edition 2024
[INFO] [stdout] 774 |         let fv = linked.as_free()?;
[INFO] [stdout] 775 |         match fv.linked_free() { Some(fv) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 780 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `linked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `linked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/ty/mod.rs:2367:23
[INFO] [stdout]      |
[INFO] [stdout] 2366 |                 let t = fv.crack().clone();
[INFO] [stdout]      |                     -
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `t` calls a custom destructor
[INFO] [stdout]      |                     `t` will be dropped later as of Edition 2024
[INFO] [stdout] 2367 |                 match t.immutate() { Some(t) => {
[INFO] [stdout]      |                       ^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2373 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating crates/erg_parser/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/build_package.rs:956:19
[INFO] [stdout]     |
[INFO] [stdout] 950 |             let mut builder = HIRBuilder::inherit_with_name(cfg, name, shared.clone());
[INFO] [stdout]     |                 -----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `builder` calls a custom destructor
[INFO] [stdout]     |                 `builder` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 956 |             match builder.build_from_ast(ast, mode) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 979 |         };
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:2410:32
[INFO] [stdout]      |
[INFO] [stdout] 2410 |         while let Some(expr) = args.try_remove(0) {
[INFO] [stdout]      |                        ----    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |       |
[INFO] [stdout]      |                        |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `expr` calls a custom destructor
[INFO] [stdout]      |                        `expr` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2415 |             let Expr::Lambda(lambda) = expr else {
[INFO] [stdout]      |                              ------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `lambda` calls a custom destructor
[INFO] [stdout]      |                              `lambda` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2440 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lambda` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lambda` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:2945:31
[INFO] [stdout]      |
[INFO] [stdout] 2945 |         while let Some(arg) = args.try_remove_pos(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 2946 |             self.emit_expr(arg.expr);
[INFO] [stdout] 2947 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:2955:31
[INFO] [stdout]      |
[INFO] [stdout] 2955 |         while let Some(arg) = args.try_remove_kw(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2958 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:3000:31
[INFO] [stdout]      |
[INFO] [stdout] 3000 |         while let Some(arg) = args.try_remove_pos(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3001 |             self.emit_expr(arg.expr);
[INFO] [stdout] 3002 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:3112:39
[INFO] [stdout]      |
[INFO] [stdout] 3112 |                 while let Some(arg) = lis.elems.try_remove_pos(0) {
[INFO] [stdout]      |                                ---    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |      |
[INFO] [stdout]      |                                |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                `arg` calls a custom destructor
[INFO] [stdout]      |                                `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3113 |                     self.emit_expr(arg.expr);
[INFO] [stdout] 3114 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:3158:39
[INFO] [stdout]      |
[INFO] [stdout] 3158 |                 while let Some(arg) = tup.elems.try_remove_pos(0) {
[INFO] [stdout]      |                                ---    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |      |
[INFO] [stdout]      |                                |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                `arg` calls a custom destructor
[INFO] [stdout]      |                                `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3159 |                     self.emit_expr(arg.expr);
[INFO] [stdout] 3160 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/codegen.rs:3178:39
[INFO] [stdout]      |
[INFO] [stdout] 3178 |                 while let Some(arg) = set.elems.try_remove_pos(0) {
[INFO] [stdout]      |                                ---    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |      |
[INFO] [stdout]      |                                |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                `arg` calls a custom destructor
[INFO] [stdout]      |                                `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3179 |                     self.emit_expr(arg.expr);
[INFO] [stdout] 3180 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/compare.rs:1408:23
[INFO] [stdout]      |
[INFO] [stdout] 1404 |                 let lt = self.get_tp_t(l).ok()?;
[INFO] [stdout]      |                     --
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `lt` calls a custom destructor
[INFO] [stdout]      |                     `lt` will be dropped later as of Edition 2024
[INFO] [stdout] 1405 |                 let pt = self.get_tp_t(p).ok()?;
[INFO] [stdout]      |                     --
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `pt` calls a custom destructor
[INFO] [stdout]      |                     `pt` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1408 |                 match (l_inf, l_sup) { (Some(inf), Some(sup)) => {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1459 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lt` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lt` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pt` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pt` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/compare.rs:1676:31
[INFO] [stdout]      |
[INFO] [stdout] 1676 |                         match self.union_tp(l_v, r_v) { Some(tp) => {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1677 |                             tps.insert(l_k.clone(), tp);
[INFO] [stdout]      |                             ---------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1681 |                     } else {
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/compare.rs:1989:31
[INFO] [stdout]      |
[INFO] [stdout] 1989 |                         match self.intersection_tp(l_v, r_v) { Some(tp) => {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1990 |                             tps.insert(l_k.clone(), tp);
[INFO] [stdout]      |                             ---------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1994 |                     } else {
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/compare.rs:2355:45
[INFO] [stdout]      |
[INFO] [stdout] 2354 |                 for pred in preds {
[INFO] [stdout]      |                             -----
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2355 |                     if let Some(new_pred) = self.eliminate_type_mismatched_preds(var, t, pred) {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2358 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/eval.rs:675:14
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let field = self
[INFO] [stdout]     |             -----
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `field` calls a custom destructor
[INFO] [stdout]     |             `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 675 |             &obj.t(),
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 679 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/eval.rs:714:19
[INFO] [stdout]     |
[INFO] [stdout] 714 |             match self.eval_const_expr(&arg.expr) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 715 |                 Ok(val) => {
[INFO] [stdout] 716 |                     evaluated_kw_args.insert(arg.keyword.inspect().clone(), val);
[INFO] [stdout]     |                     ------------------------------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 719 |                     evaluated_kw_args.insert(arg.keyword.inspect().clone(), val);
[INFO] [stdout]     |                     ------------------------------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 723 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:1152:27
[INFO] [stdout]      |
[INFO] [stdout] 1152 |                       match (
[INFO] [stdout]      |  ___________________________^
[INFO] [stdout] 1153 | |                         self.eval_const_expr(&elem.key),
[INFO] [stdout] 1154 | |                         self.eval_const_expr(&elem.value),
[INFO] [stdout] 1155 | |                     ) {
[INFO] [stdout]      | |                     ^
[INFO] [stdout]      | |                     |
[INFO] [stdout]      | |_____________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                       up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1156 |                           (Ok(key), Ok(value)) => {
[INFO] [stdout] 1157 |                               elems.insert(key, value);
[INFO] [stdout]      |                               ------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1160 |                               elems.insert(key, value);
[INFO] [stdout]      |                               ------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1164 |                               elems.insert(key, value);
[INFO] [stdout]      |                               ------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                               `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1168 |                               elems.insert(key, value);
[INFO] [stdout]      |                               ------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                               `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1173 |                   }
[INFO] [stdout]      |                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:1360:19
[INFO] [stdout]      |
[INFO] [stdout] 1359 |               let expr = self.eval_const_expr(&sig.default_val)?;
[INFO] [stdout]      |                   ----
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   `expr` calls a custom destructor
[INFO] [stdout]      |                   `expr` will be dropped later as of Edition 2024
[INFO] [stdout] 1360 |               match self.instantiate_param_ty(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1361 | |                 &sig.sig,
[INFO] [stdout] 1362 | |                 None,
[INFO] [stdout] 1363 | |                 &mut tmp_tv_cache,
[INFO] [stdout] ...    |
[INFO] [stdout] 1366 | |                 false,
[INFO] [stdout] 1367 | |             ) {
[INFO] [stdout]      | |             ^
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1374 |           }
[INFO] [stdout]      |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2001:27
[INFO] [stdout]      |
[INFO] [stdout] 2000 |                 for (name, tp) in fields.into_iter() {
[INFO] [stdout]      |                                   ------------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2001 |                     match self.eval_tp(tp) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2002 |                         Ok(tp) => {
[INFO] [stdout] 2003 |                             new_fields.insert(name, tp);
[INFO] [stdout]      |                             ---------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2006 |                             new_fields.insert(name, tp);
[INFO] [stdout]      |                             ---------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2010 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2033:27
[INFO] [stdout]      |
[INFO] [stdout] 2032 |                 for tp in tps {
[INFO] [stdout]      |                           ---
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2033 |                     match self.eval_tp(tp) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2040 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2056:27
[INFO] [stdout]      |
[INFO] [stdout] 2055 |                 for tp in tps {
[INFO] [stdout]      |                           ---
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2056 |                     match self.eval_tp(tp) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2063 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2069:27
[INFO] [stdout]      |
[INFO] [stdout] 2068 |                 for (k, v) in dic.into_iter() {
[INFO] [stdout]      |                               ---------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2069 |                     match (self.eval_tp(k), self.eval_tp(v)) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                           up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2070 |                         (Ok(k), Ok(v)) => {
[INFO] [stdout] 2071 |                             new_dic.insert(k, v);
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2074 |                             new_dic.insert(k, v);
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2078 |                             new_dic.insert(k, v);
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                             `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2082 |                             new_dic.insert(k, v);
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                             `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2087 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2093:27
[INFO] [stdout]      |
[INFO] [stdout] 2092 |                 for v in set.into_iter() {
[INFO] [stdout]      |                          ---------------
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2093 |                     match self.eval_tp(v) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2102 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2108:27
[INFO] [stdout]      |
[INFO] [stdout] 2107 |                 for (name, tp) in dict.into_iter() {
[INFO] [stdout]      |                                   ----------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2108 |                     match self.eval_tp(tp) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2109 |                         Ok(tp) => {
[INFO] [stdout] 2110 |                             fields.insert(name, tp);
[INFO] [stdout]      |                             -----------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2113 |                             fields.insert(name, tp);
[INFO] [stdout]      |                             -----------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2117 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2410:27
[INFO] [stdout]      |
[INFO] [stdout] 2409 |                 for and in ands.into_iter() {
[INFO] [stdout]      |                            ----------------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2410 |                     match self.eval_t_params(and, level, t_loc) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2419 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2432:27
[INFO] [stdout]      |
[INFO] [stdout] 2431 |                 for or in ors.into_iter() {
[INFO] [stdout]      |                           ---------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2432 |                     match self.eval_t_params(or, level, t_loc) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2441 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2456:23
[INFO] [stdout]      |
[INFO] [stdout] 2455 |                 set_recursion_limit!(Ok(typ.structuralize()), 128);
[INFO] [stdout]      |                 --------------------------------------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `counter` calls a custom destructor
[INFO] [stdout]      |                 `counter` will be dropped later as of Edition 2024
[INFO] [stdout] 2456 |                 match self.eval_t_params(*typ, level, t_loc) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2460 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `counter` invokes this custom destructor
[INFO] [stdout]     --> crates/erg_common/macros.rs:610:1
[INFO] [stdout]      |
[INFO] [stdout]  610 | impl Drop for RecursionCounter {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2464:27
[INFO] [stdout]      |
[INFO] [stdout] 2463 |                 for (name, ty) in rec.into_iter() {
[INFO] [stdout]      |                                   ---------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2464 |                     match self.eval_t_params(ty, level, t_loc) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2465 |                         Ok(ty) => {
[INFO] [stdout] 2466 |                             fields.insert(name, ty);
[INFO] [stdout]      |                             -----------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2469 |                             fields.insert(name, tp);
[INFO] [stdout]      |                             -----------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2473 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2479:27
[INFO] [stdout]      |
[INFO] [stdout] 2478 |                 for (name, ty) in tuple.into_iter() {
[INFO] [stdout]      |                                   -----------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2479 |                     match self.eval_t_params(ty, level, t_loc) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2486 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:2606:23
[INFO] [stdout]      |
[INFO] [stdout] 2579 |               match self.validate_and_project(
[INFO] [stdout]      |  ___________________-
[INFO] [stdout] 2580 | |                 &sub,
[INFO] [stdout] 2581 | |                 opt_sup.as_ref(),
[INFO] [stdout] 2582 | |                 &rhs,
[INFO] [stdout] ...    |
[INFO] [stdout] 2586 | |                 t_loc,
[INFO] [stdout] 2587 | |             ) {
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2606 |                   match self.validate_and_project(
[INFO] [stdout]      |  _______________________^
[INFO] [stdout]      | |_______________________|
[INFO] [stdout] 2607 | |                     &sub,
[INFO] [stdout] 2608 | |                     opt_sup.as_ref(),
[INFO] [stdout] 2609 | |                     &rhs,
[INFO] [stdout] ...    |
[INFO] [stdout] 2613 | |                     t_loc,
[INFO] [stdout] 2614 | |                 ) {
[INFO] [stdout]      | |                 ^
[INFO] [stdout]      | |_________________|
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2619 | |             }
[INFO] [stdout]      | |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3330:23
[INFO] [stdout]      |
[INFO] [stdout] 3329 |                 let old = proj(*lhs.clone(), rhs.clone());
[INFO] [stdout]      |                     ---
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `old` calls a custom destructor
[INFO] [stdout]      |                     `old` will be dropped later as of Edition 2024
[INFO] [stdout] 3330 |                 match self.eval_proj(*lhs, rhs, self.level, &()) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3334 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `old` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `old` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3341:23
[INFO] [stdout]      |
[INFO] [stdout] 3340 |                 let old = proj_call(*lhs.clone(), attr_name.clone(), args.clone());
[INFO] [stdout]      |                     ---
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `old` calls a custom destructor
[INFO] [stdout]      |                     `old` will be dropped later as of Edition 2024
[INFO] [stdout] 3341 |                 match self.eval_proj_call_t(*lhs, attr_name, args, self.level, &()) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3345 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `old` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `old` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3750:19
[INFO] [stdout]      |
[INFO] [stdout] 3747 |             let Some(lhs) = lhs else {
[INFO] [stdout]      |                      ---
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `lhs` calls a custom destructor
[INFO] [stdout]      |                      `lhs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3750 |             match self.convert_tp_into_value(lhs.clone()) { Ok(value) => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3757 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lhs` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lhs` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3761:28
[INFO] [stdout]      |
[INFO] [stdout] 3758 |         for pos_arg in args.into_iter() {
[INFO] [stdout]      |             -------    ----------------
[INFO] [stdout]      |             |          |
[INFO] [stdout]      |             |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |             |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |             `pos_arg` calls a custom destructor
[INFO] [stdout]      |             `pos_arg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3761 |             } _ => { match self.eval_tp_into_value(pos_arg.clone()) { Ok(value) => {
[INFO] [stdout]      |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                            up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3765 |             }}}}
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pos_arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pos_arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3759:19
[INFO] [stdout]      |
[INFO] [stdout] 3758 |         for pos_arg in args.into_iter() {
[INFO] [stdout]      |             -------    ----------------
[INFO] [stdout]      |             |          |
[INFO] [stdout]      |             |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |             |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |             `pos_arg` calls a custom destructor
[INFO] [stdout]      |             `pos_arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3759 |             match self.convert_tp_into_value(pos_arg.clone()) { Ok(value) => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3766 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pos_arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pos_arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3854:34
[INFO] [stdout]      |
[INFO] [stdout] 3850 |             if let Ok(obj) = ty_ctx.get_const_local(&Token::symbol(&attr_name), &self.name) {
[INFO] [stdout]      |                              --------------------------------------------------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3854 |                 if let Ok(obj) = methods.get_const_local(&Token::symbol(&attr_name), &self.name) {
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3857 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:3931:34
[INFO] [stdout]      |
[INFO] [stdout] 3927 |             if let Ok(obj) = ty_ctx.get_const_local(&Token::symbol(&attr_name), &self.name) {
[INFO] [stdout]      |                              --------------------------------------------------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3931 |                 if let Ok(obj) = methods.get_const_local(&Token::symbol(&attr_name), &self.name) {
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3934 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:4038:27
[INFO] [stdout]      |
[INFO] [stdout] 4037 |                 for arg in args {
[INFO] [stdout]      |                            ----
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 4038 |                     match self.eval_tp(arg) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 4045 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/eval.rs:4058:23
[INFO] [stdout]      |
[INFO] [stdout] 4046 |                 let res = if let Some(name) = name {
[INFO] [stdout]      |                     ---
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `res` calls a custom destructor
[INFO] [stdout]      |                     `res` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 4058 |                 match self.convert_tp_into_value(tp) { Ok(v) => {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 4070 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/generalize.rs:940:45
[INFO] [stdout]     |
[INFO] [stdout] 938 |                         let mut union = Never;
[INFO] [stdout]     |                             ---------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `union` calls a custom destructor
[INFO] [stdout]     |                             `union` will be dropped later as of Edition 2024
[INFO] [stdout] 939 |                         for tp in tys {
[INFO] [stdout] 940 |                             if let Ok(ty) = self.ctx.convert_tp_into_type(tp.clone()) {
[INFO] [stdout]     |                                       --    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |     |
[INFO] [stdout]     |                                       |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                       |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                       `ty` calls a custom destructor
[INFO] [stdout]     |                                       `ty` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 943 |                         }
[INFO] [stdout]     |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `union` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `union` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ty` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ty` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/generalize.rs:1028:31
[INFO] [stdout]      |
[INFO] [stdout] 1023 |                     match self.deref_tyvar(mem::take(d_param.typ_mut())) {
[INFO] [stdout]      |                           ----------------------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1028 |                         match self.deref_tyvar(mem::take(default)) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1032 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/hint.rs:301:52
[INFO] [stdout]     |
[INFO] [stdout] 301 |                     let sup = *option_enum_unwrap!(sup.typarams().first()?.clone(), TyParam::Type)?;
[INFO] [stdout]     |                                ----------------------------------^^^^^^^^^^^^^^^^^------------------ now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |                                |                   |
[INFO] [stdout]     |                                |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                |                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/initialize/const_func.rs:246:15
[INFO] [stdout]     |
[INFO] [stdout] 246 |           match (
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 247 | |             ctx.convert_value_into_type(key.clone()),
[INFO] [stdout] 248 | |             ctx.convert_value_into_type(k.clone()),
[INFO] [stdout] 249 | |         ) {
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 250 |               (Ok(idx), Ok(kt))
[INFO] [stdout] 251 |                   if dict.len() == 1 || ctx.subtype_of(&idx.lower_bounded(), &kt.lower_bounded()) =>
[INFO] [stdout]     |                                                         -------------------   ------------------
[INFO] [stdout]     |                                                         |                     |
[INFO] [stdout]     |                                                         |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                         |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 257 |       }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/initialize/const_func.rs:282:15
[INFO] [stdout]     |
[INFO] [stdout] 282 |           match (
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 283 | |             ctx.convert_tp_into_type(key.clone()),
[INFO] [stdout] 284 | |             ctx.convert_tp_into_type(k.clone()),
[INFO] [stdout] 285 | |         ) {
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 286 |               (Ok(idx), Ok(kt))
[INFO] [stdout] 287 |                   if dict.len() == 1 || ctx.subtype_of(&idx.lower_bounded(), &kt.lower_bounded()) =>
[INFO] [stdout]     |                                                         -------------------   ------------------
[INFO] [stdout]     |                                                         |                     |
[INFO] [stdout]     |                                                         |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                         |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 293 |       }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/initialize/const_func.rs:1646:19
[INFO] [stdout]      |
[INFO] [stdout] 1642 |             let coerced = ctx.coerce(t.clone(), &()).unwrap_or(t);
[INFO] [stdout]      |                 -------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `coerced` calls a custom destructor
[INFO] [stdout]      |                 `coerced` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1645 |             let der = coerced.derefine();
[INFO] [stdout]      |                 ---
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `der` calls a custom destructor
[INFO] [stdout]      |                 `der` will be dropped later as of Edition 2024
[INFO] [stdout] 1646 |             match (inf, sup) {
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1650 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `coerced` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `coerced` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `der` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `der` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/initialize/const_func.rs:1699:15
[INFO] [stdout]      |
[INFO] [stdout] 1681 |         let shared = SharedCompilerResource::default();
[INFO] [stdout]      |             ------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `shared` calls a custom destructor
[INFO] [stdout]      |             `shared` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1685 |         let a = singleton(Type::Str, TyParam::value("a"));
[INFO] [stdout]      |             -
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `a` calls a custom destructor
[INFO] [stdout]      |             `a` will be dropped later as of Edition 2024
[INFO] [stdout] 1686 |         let b = singleton(Type::Str, TyParam::value("b"));
[INFO] [stdout]      |             -
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `b` calls a custom destructor
[INFO] [stdout]      |             `b` will be dropped later as of Edition 2024
[INFO] [stdout] 1687 |         let c = singleton(Type::Str, TyParam::value("c"));
[INFO] [stdout]      |             -
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `c` calls a custom destructor
[INFO] [stdout]      |             `c` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1690 |         let g_dic = singleton(Type::Type, TyParam::t(mono("GenericDict")));
[INFO] [stdout]      |             -----
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `g_dic` calls a custom destructor
[INFO] [stdout]      |             `g_dic` will be dropped later as of Edition 2024
[INFO] [stdout] 1691 |         let g_lis = singleton(Type::Type, TyParam::t(mono("GenericList")));
[INFO] [stdout]      |             -----
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `g_lis` calls a custom destructor
[INFO] [stdout]      |             `g_lis` will be dropped later as of Edition 2024
[INFO] [stdout] 1692 |         let sub = func0(singleton(Type::NoneType, TyParam::value(ValueObj::None)));
[INFO] [stdout]      |             ---
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `sub` calls a custom destructor
[INFO] [stdout]      |             `sub` will be dropped later as of Edition 2024
[INFO] [stdout] 1693 |         let v_union = ctx.union(&ctx.union(&g_lis, &sub), &g_dic);
[INFO] [stdout] 1694 |         let dic = dict! {
[INFO] [stdout]      |             ---
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `dic` calls a custom destructor
[INFO] [stdout]      |             `dic` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1699 |         match ctx.eval_proj_call_t(dic.clone().into(), "items".into(), vec![], 1, &()) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1708 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `shared` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/thread/lifecycle.rs:171:0
[INFO] [stdout] note: `shared` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/thread/unix.rs:140:0
[INFO] [stdout] note: `shared` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `shared` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `shared` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `a` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `a` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `b` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `b` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `c` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `c` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `g_dic` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `g_dic` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `g_lis` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `g_lis` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sub` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sub` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `dic` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `dic` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/initialize/mod.rs:1180:19
[INFO] [stdout]      |
[INFO] [stdout] 1180 |             match self.trait_impls().get_mut(&impl_trait.qual_name()) { Some(mut impls) => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        ---------
[INFO] [stdout]      |                   |                                                          |
[INFO] [stdout]      |                   |                                                          `impls` calls a custom destructor
[INFO] [stdout]      |                   |                                                          `impls` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1196 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:3100:1
[INFO] [stdout]      |
[INFO] [stdout] 3100 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for MappedRwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `impls` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:3100:1
[INFO] [stdout]      |
[INFO] [stdout] 3100 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for MappedRwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/inquire.rs:931:41
[INFO] [stdout]     |
[INFO] [stdout] 926 |                 let list = UndoableLinkedList::new();
[INFO] [stdout]     |                     ----
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `list` calls a custom destructor
[INFO] [stdout]     |                     `list` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 931 |                 if let Triple::Ok(vi) = self.get_attr_info(obj, ident, input, namespace, expect) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 936 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `list` invokes this custom destructor
[INFO] [stdout]    --> crates/erg_compiler/context/eval.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Drop for UndoableLinkedList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/inquire.rs:963:27
[INFO] [stdout]     |
[INFO] [stdout] 952 |                 match ctx.rec_get_var_info(ident, AccessKind::BoundAttr, input, namespace) {
[INFO] [stdout]     |                       --------------------------------------------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 963 |                     match ctx.rec_get_var_info(ident, AccessKind::BoundAttr, input, namespace) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 972 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:1008:27
[INFO] [stdout]      |
[INFO] [stdout]  997 |                 match ctx.rec_get_var_info(ident, AccessKind::BoundAttr, input, namespace) {
[INFO] [stdout]      |                       --------------------------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1008 |                     match ctx.rec_get_var_info(ident, AccessKind::BoundAttr, input, namespace) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1017 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:1102:27
[INFO] [stdout]      |
[INFO] [stdout] 1100 |                   let mut info = Triple::<VarInfo, _>::None;
[INFO] [stdout]      |                       --------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       `info` calls a custom destructor
[INFO] [stdout]      |                       `info` will be dropped later as of Edition 2024
[INFO] [stdout] 1101 |                   for ty in tys {
[INFO] [stdout] 1102 |                       match (
[INFO] [stdout]      |  ___________________________^
[INFO] [stdout] 1103 | |                         self.get_attr_info_from_attributive(ty, ident, namespace),
[INFO] [stdout] 1104 | |                         &info,
[INFO] [stdout] 1105 | |                     ) {
[INFO] [stdout]      | |                     ^
[INFO] [stdout]      | |                     |
[INFO] [stdout]      | |_____________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1106 |                           (Triple::Ok(vi), Triple::Ok(vi_)) => {
[INFO] [stdout]      |                                       --
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       `vi` calls a custom destructor
[INFO] [stdout]      |                                       `vi` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1126 |                   }
[INFO] [stdout]      |                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `info` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `info` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `vi` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `vi` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:1266:43
[INFO] [stdout]      |
[INFO] [stdout] 1261 |                           sub.non_default_params.remove(0);
[INFO] [stdout]      |                           --------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1266 |                       if let Ok(instance) = self.instantiate(ty.clone(), obj) {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                             up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1267 |                           let subst = self
[INFO] [stdout]      |  _____________________________________-
[INFO] [stdout] 1268 | |                             .substitute_call(
[INFO] [stdout] 1269 | |                                 obj,
[INFO] [stdout] 1270 | |                                 &None,
[INFO] [stdout] ...    |
[INFO] [stdout] 1275 | |                                 self,
[INFO] [stdout] 1276 | |                             )
[INFO] [stdout]      | |                             -
[INFO] [stdout]      | |                             |
[INFO] [stdout]      | |_____________________________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 1277 |                               .is_ok();
[INFO] [stdout] 1278 |                           let eval = self.eval_t_params(instance, self.level, obj).is_ok();
[INFO] [stdout]      |                                      ---------------------------------------------
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1284 |                   }
[INFO] [stdout]      |                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:1926:14
[INFO] [stdout]      |
[INFO] [stdout] 1918 |         let other = self.readable_type(other.clone());
[INFO] [stdout]      |             -----
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `other` calls a custom destructor
[INFO] [stdout]      |             `other` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1926 |             &mono("Callable"),
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |              |
[INFO] [stdout]      |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1931 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `other` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `other` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/inquire.rs:2435:41
[INFO] [stdout]      |
[INFO] [stdout] 2414 |                       let call_instance = self.instantiate_def_type(&call_vi.t)?;
[INFO] [stdout]      |                           -------------   --------------------------------------
[INFO] [stdout]      |                           |               |
[INFO] [stdout]      |                           |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           `call_instance` calls a custom destructor
[INFO] [stdout]      |                           `call_instance` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2435 |                   .get_method_context_of(&mono("GenericCallable"))
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                           up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2440 |                   let call_instance = self.instantiate_def_type(&call_vi.t)?;
[INFO] [stdout]      |                       -------------   --------------------------------------
[INFO] [stdout]      |                       |               |
[INFO] [stdout]      |                       |               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                       |               `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 2441 |                   if !call_instance.contains_intersec(instance) {
[INFO] [stdout] 2442 |                       let instance = match self.substitute_call(
[INFO] [stdout]      |  __________________________________________-
[INFO] [stdout] 2443 | |                         obj,
[INFO] [stdout] 2444 | |                         attr_name,
[INFO] [stdout] 2445 | |                         &call_instance,
[INFO] [stdout] ...    |
[INFO] [stdout] 2449 | |                         namespace,
[INFO] [stdout] 2450 | |                     )? {
[INFO] [stdout]      | |                      -
[INFO] [stdout]      | |                      |
[INFO] [stdout]      | |                      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                      `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      | |______________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                        `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2457 |               } _ => {}}}
[INFO] [stdout]      |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `call_instance` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `call_instance` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/context/instantiate_spec.rs:389:19
[INFO] [stdout]     |
[INFO] [stdout] 386 |               let opt_decl_t = opt_decl_sig_t
[INFO] [stdout]     |                   ----------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `opt_decl_t` calls a custom destructor
[INFO] [stdout]     |                   `opt_decl_t` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 389 |               match self.instantiate_typespec_full(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 390 | |                 &t_spec.t_spec,
[INFO] [stdout] 391 | |                 opt_decl_t.as_ref(),
[INFO] [stdout] 392 | |                 &mut tmp_tv_cache,
[INFO] [stdout] 393 | |                 mode,
[INFO] [stdout] 394 | |                 false,
[INFO] [stdout] 395 | |             ) {
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |           } else if self.cfg.no_infer_fn_type {
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `opt_decl_t` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `opt_decl_t` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/instantiate_spec.rs:1581:36
[INFO] [stdout]      |
[INFO] [stdout] 1572 |                     let pred = match self
[INFO] [stdout]      |                         ----
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         `pred` calls a custom destructor
[INFO] [stdout]      |                         `pred` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1581 |                     if let Ok(t) = self.instantiate_tp_as_type(iter, set) {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                    |
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1589 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pred` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pred` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/instantiate_spec.rs:2992:15
[INFO] [stdout]      |
[INFO] [stdout] 2991 |         let mut dummy = TyVarCache::new(self.level, self);
[INFO] [stdout]      |             ---------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `dummy` calls a custom destructor
[INFO] [stdout]      |             `dummy` will be dropped later as of Edition 2024
[INFO] [stdout] 2992 |         match self.instantiate_const_expr(&const_expr, None, &mut dummy, false) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3016 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `dummy` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `dummy` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/unify.rs:2104:38
[INFO] [stdout]      |
[INFO] [stdout] 2102 |                 let mut unified = Never;
[INFO] [stdout]      |                     -----------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `unified` calls a custom destructor
[INFO] [stdout]      |                     `unified` will be dropped later as of Edition 2024
[INFO] [stdout] 2103 |                 for ty in tys {
[INFO] [stdout] 2104 |                     if let Some(t) = self.unify(ty, other) {
[INFO] [stdout]      |                                 -    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                 |    |
[INFO] [stdout]      |                                 |    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 |    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 `t` calls a custom destructor
[INFO] [stdout]      |                                 `t` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2107 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `unified` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `unified` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/unify.rs:2117:38
[INFO] [stdout]      |
[INFO] [stdout] 2115 |                 let mut unified = Obj;
[INFO] [stdout]      |                     -----------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `unified` calls a custom destructor
[INFO] [stdout]      |                     `unified` will be dropped later as of Edition 2024
[INFO] [stdout] 2116 |                 for ty in tys {
[INFO] [stdout] 2117 |                     if let Some(t) = self.unify(ty, other) {
[INFO] [stdout]      |                                 -    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                 |    |
[INFO] [stdout]      |                                 |    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 |    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 `t` calls a custom destructor
[INFO] [stdout]      |                                 `t` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2120 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `unified` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `unified` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/context/mod.rs:1594:41
[INFO] [stdout]      |
[INFO] [stdout] 1591 |                 let tp = self.detach_tp(tp.clone(), &mut tv_ctx);
[INFO] [stdout]      |                     --
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `tp` calls a custom destructor
[INFO] [stdout]      |                     `tp` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1594 |                         if let Ok(tv) = self.convert_tp_into_type(tp.clone()) {
[INFO] [stdout]      |                                   --    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                   |     |
[INFO] [stdout]      |                                   |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                   `tv` calls a custom destructor
[INFO] [stdout]      |                                   `tv` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1598 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `tp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `tp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `tv` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `tv` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/declare.rs:221:49
[INFO] [stdout]     |
[INFO] [stdout] 214 |                   let mut ident = hir::Identifier::bare(attr.ident);
[INFO] [stdout]     |                       ---------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `ident` calls a custom destructor
[INFO] [stdout]     |                       `ident` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 221 |                           if let Triple::Ok(vi) = ctx.rec_get_var_info(
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 222 | |                             &ident.raw,
[INFO] [stdout] 223 | |                             AccessKind::UnboundAttr,
[INFO] [stdout] 224 | |                             self.input(),
[INFO] [stdout] 225 | |                             &self.module.context,
[INFO] [stdout] 226 | |                         ) {
[INFO] [stdout]     | |                         ^
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |_________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 230 |                       }
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ident` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ident` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/lint.rs:272:19
[INFO] [stdout]     |
[INFO] [stdout] 272 |             match self.lower_chunk(chunk, None) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 276 |                 Err((chunk, errs)) => {
[INFO] [stdout]     |                      -----
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `chunk` calls a custom destructor
[INFO] [stdout]     |                      `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 283 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/lower.rs:569:19
[INFO] [stdout]     |
[INFO] [stdout] 565 |           for (elem, expect) in elems
[INFO] [stdout]     |  ____________________------_____-
[INFO] [stdout]     | |                    |
[INFO] [stdout]     | |                    `expect` calls a custom destructor
[INFO] [stdout]     | |                    `expect` will be dropped later as of Edition 2024
[INFO] [stdout] 566 | |             .into_iter()
[INFO] [stdout] 567 | |             .zip(expect_ts.into_iter().chain(std::iter::repeat(None)))
[INFO] [stdout]     | |                                                                      -
[INFO] [stdout]     | |                                                                      |
[INFO] [stdout]     | |______________________________________________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 568 |           {
[INFO] [stdout] 569 |               match self.lower_expr(elem.expr, expect.as_ref()) {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 576 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expect` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expect` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/lower.rs:1439:19
[INFO] [stdout]      |
[INFO] [stdout] 1439 |             match self.lower_expr(arg.expr, param) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1448 |                 Err((expr, es)) => {
[INFO] [stdout]      |                      ----
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `expr` calls a custom destructor
[INFO] [stdout]      |                      `expr` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1455 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expr` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/lower.rs:1857:19
[INFO] [stdout]      |
[INFO] [stdout] 1857 |             match self.lower_expr(default.default_val, default_t) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1858 |                 Ok(default_val) => {
[INFO] [stdout]      |                    -----------
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    `default_val` calls a custom destructor
[INFO] [stdout]      |                    `default_val` will be dropped later as of Edition 2024
[INFO] [stdout] 1859 |                     let sig = match self.lower_non_default_param(default.sig) {
[INFO] [stdout]      |                                     -----------------------------------------
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1889 |                 Err((_default, es)) => errs.extend(es),
[INFO] [stdout]      |                      --------
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `_default` calls a custom destructor
[INFO] [stdout]      |                      `_default` will be dropped later as of Edition 2024
[INFO] [stdout] 1890 |             }
[INFO] [stdout] 1891 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `default_val` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `default_val` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `_default` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `_default` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/lower.rs:2292:15
[INFO] [stdout]      |
[INFO] [stdout] 2268 |         let existing_vi = sig
[INFO] [stdout]      |             -----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `existing_vi` calls a custom destructor
[INFO] [stdout]      |             `existing_vi` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2272 |         let existing_t = existing_vi.as_ref().map(|vi| vi.t.clone());
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `existing_t` calls a custom destructor
[INFO] [stdout]      |             `existing_t` will be dropped later as of Edition 2024
[INFO] [stdout] 2273 |         let expect_body_t = sig
[INFO] [stdout]      |             -------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `expect_body_t` calls a custom destructor
[INFO] [stdout]      |             `expect_body_t` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2292 |         match self.lower_block(body.block, expect_body.or(expect_body_t.as_ref())) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2425 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `existing_vi` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `existing_vi` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `existing_t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `existing_t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expect_body_t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `expect_body_t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/lower.rs:3936:19
[INFO] [stdout]      |
[INFO] [stdout] 3936 |             match self.lower_chunk(chunk, None) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3940 |                 Err((chunk, errs)) => {
[INFO] [stdout]      |                      -----
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `chunk` calls a custom destructor
[INFO] [stdout]      |                      `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3947 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/transpile.rs:927:45
[INFO] [stdout]     |
[INFO] [stdout] 927 |         while let Some(Expr::Lambda(arm)) = call.args.try_remove(0) {
[INFO] [stdout]     |                                     ---     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |       |
[INFO] [stdout]     |                                     |       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     |       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                     `arm` calls a custom destructor
[INFO] [stdout]     |                                     `arm` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 940 |                             let values = ValueObj::vec_from_const_args(enum_t.clone());
[INFO] [stdout]     |                                 ------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `values` calls a custom destructor
[INFO] [stdout]     |                                 `values` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 972 |                             let values = ValueObj::vec_from_const_args(enum_t.clone());
[INFO] [stdout]     |                                 ------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 990 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arm` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arm` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `values` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `values` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/transpile.rs:1029:31
[INFO] [stdout]      |
[INFO] [stdout] 1029 |         while let Some(arg) = args.try_remove_pos(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1032 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/transpile.rs:1033:31
[INFO] [stdout]      |
[INFO] [stdout] 1033 |         while let Some(arg) = args.try_remove_kw(0) {
[INFO] [stdout]      |                        ---    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `arg` calls a custom destructor
[INFO] [stdout]      |                        `arg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1040 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating crates/erg_parser/tests/parse_test.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/transpile.rs:1306:27
[INFO] [stdout]      |
[INFO] [stdout] 1305 |                 for elem in lis.elems.pos_args {
[INFO] [stdout]      |                     ----    ------------------
[INFO] [stdout]      |                     |       |
[INFO] [stdout]      |                     |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                     `elem` calls a custom destructor
[INFO] [stdout]      |                     `elem` will be dropped later as of Edition 2024
[INFO] [stdout] 1306 |                     match self.expr_into_value(elem.expr) { Some(val) => {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1311 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/transpile.rs:1325:27
[INFO] [stdout]      |
[INFO] [stdout] 1324 |                 for elem in tup.elems.pos_args {
[INFO] [stdout]      |                     ----    ------------------
[INFO] [stdout]      |                     |       |
[INFO] [stdout]      |                     |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                     `elem` calls a custom destructor
[INFO] [stdout]      |                     `elem` will be dropped later as of Edition 2024
[INFO] [stdout] 1325 |                     match self.expr_into_value(elem.expr) { Some(val) => {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1330 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/ty/free.rs:683:15
[INFO] [stdout]     |
[INFO] [stdout] 681 |         let linked = self.get_linked()?;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `linked` calls a custom destructor
[INFO] [stdout]     |             `linked` will be dropped later as of Edition 2024
[INFO] [stdout] 682 |         let fv = linked.as_free()?;
[INFO] [stdout] 683 |         match fv.linked_free() { Some(fv) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 688 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `linked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `linked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/erg_compiler/ty/free.rs:775:15
[INFO] [stdout]     |
[INFO] [stdout] 773 |         let linked = self.get_linked()?;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `linked` calls a custom destructor
[INFO] [stdout]     |             `linked` will be dropped later as of Edition 2024
[INFO] [stdout] 774 |         let fv = linked.as_free()?;
[INFO] [stdout] 775 |         match fv.linked_free() { Some(fv) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 780 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `linked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `linked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/erg_compiler/ty/mod.rs:2367:23
[INFO] [stdout]      |
[INFO] [stdout] 2366 |                 let t = fv.crack().clone();
[INFO] [stdout]      |                     -
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `t` calls a custom destructor
[INFO] [stdout]      |                     `t` will be dropped later as of Edition 2024
[INFO] [stdout] 2367 |                 match t.immutate() { Some(t) => {
[INFO] [stdout]      |                       ^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2373 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `t` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.9/src/lib.rs:137:1
[INFO] [stdout]      |
[INFO] [stdout]  137 | impl<T: Send> Drop for ThreadLocal<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating crates/erg_linter/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/els/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed crates/els/sig_help.rs (3 fixes)
[INFO] [stderr]        Fixed crates/els/completion.rs (1 fix)
[INFO] [stderr]        Fixed crates/els/inlay_hint.rs (2 fixes)
[INFO] [stderr]        Fixed crates/els/hir_visitor.rs (4 fixes)
[INFO] [stderr]        Fixed crates/els/diagnostics.rs (3 fixes)
[INFO] [stderr]        Fixed crates/els/doc_link.rs (1 fix)
[INFO] [stderr]        Fixed crates/els/server.rs (3 fixes)
[INFO] [stderr]        Fixed crates/els/definition.rs (2 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/completion.rs:479:34
[INFO] [stdout]      |
[INFO] [stdout]  479 |             if let Some(comps) = self.cache.borrow_mut().get_mut(&k) {
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  482 |                 self.cache.borrow_mut().insert(k, v);
[INFO] [stdout]      |                 -----------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  483 |             }
[INFO] [stdout]  484 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
[INFO] [stdout]      |
[INFO] [stdout] 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
[INFO] [stdout]      |
[INFO] [stdout] 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/diagnostics.rs:423:47
[INFO] [stdout]      |
[INFO] [stdout]  402 |                       if _self
[INFO] [stdout]      |  ________________________-
[INFO] [stdout]  403 | |                         .client_answers
[INFO] [stdout]  404 | |                         .borrow()
[INFO] [stdout]      | |                                 -
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |_________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  423 |                               if let Ok(code) = _self.file_cache.get_entire_code(&uri) {
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                 |
[INFO] [stdout]      |                                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  424 |                                   let mut checked = Set::new();
[INFO] [stdout]  425 |                                   let _ = _self.check_file(uri.clone(), code, &mut checked);
[INFO] [stdout]      |                                           -------------------------------------------------
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  429 |                           }
[INFO] [stdout]      |                           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1432:1
[INFO] [stdout]      |
[INFO] [stdout] 1432 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/els/diagnostics.rs:450:34
[INFO] [stdout]     |
[INFO] [stdout] 443 |         for entry in read_dir {
[INFO] [stdout]     |             -----    --------
[INFO] [stdout]     |             |        |
[INFO] [stdout]     |             |        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |             |        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |             `entry` calls a custom destructor
[INFO] [stdout]     |             `entry` will be dropped later as of Edition 2024
[INFO] [stdout] 444 |             let Ok(entry) = entry else {
[INFO] [stdout]     |                    -----
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 if let Ok(uri) = NormalizedUrl::from_file_path(entry.path()) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                  up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 453 |             } else if entry.path().is_dir() {
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/rename.rs:167:9
[INFO] [stdout]      |
[INFO] [stdout]  164 |           let Some(self_node) = graph.get_node(&path) else {
[INFO] [stdout]      |                    ---------
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    `self_node` calls a custom destructor
[INFO] [stdout]      |                    `self_node` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  167 | /         graph
[INFO] [stdout]  168 | |             .ref_inner()
[INFO] [stdout]      | |                        ^
[INFO] [stdout]      | |                        |
[INFO] [stdout]      | |________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  177 |       }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1432:1
[INFO] [stdout]      |
[INFO] [stdout] 1432 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `self_node` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:2922:1
[INFO] [stdout]      |
[INFO] [stdout] 2922 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for MappedRwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/els/server.rs:861:23
[INFO] [stdout]     |
[INFO] [stdout] 170 |           let _ = $self.send_log(format!("{}@{}: {s}", file!(), line!()));
[INFO] [stdout]     |                   -------------------------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 861 |                   match receiver.recv() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                         up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 862 |                       Ok(WorkerMessage::Request(id, params)) => {
[INFO] [stdout]     |                                                     ------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     `params` calls a custom destructor
[INFO] [stdout]     |                                                     `params` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 868 |                           match handler(&mut _self, params) {
[INFO] [stdout]     |                                 ---------------------------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 869 |                               Ok(result) => {
[INFO] [stdout] 870 |                                   let _ = _self.send_stdout(&LSPResult::new(id, result));
[INFO] [stdout]     |                                           ----------------------------------------------
[INFO] [stdout]     |                                           |                  |
[INFO] [stdout]     |                                           |                  this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                           |                  `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                           `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 871 |                               }
[INFO] [stdout] 872 |                               Err(err) => {
[INFO] [stdout]     |                                   ---
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `err` calls a custom destructor
[INFO] [stdout]     |                                   `err` will be dropped later as of Edition 2024
[INFO] [stdout] 873 |                                   lsp_log!("error: {err}");
[INFO] [stdout] 874 |                                   let _ = _self.send_stdout(&ErrorMessage::new(
[INFO] [stdout]     |  _________________________________________-
[INFO] [stdout] 875 | |                                     Some(id),
[INFO] [stdout] 876 | |                                     format!("err from {}: {err}", type_name::<R>()).into(),
[INFO] [stdout] 877 | |                                 ));
[INFO] [stdout]     | |                                  -
[INFO] [stdout]     | |                                  |
[INFO] [stdout]     | |__________________________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                    `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 891 |               }, // The receiver channel will be dropped and closed
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating crates/erg_compiler/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/erg_compiler/tests/test.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/completion.rs:479:34
[INFO] [stdout]      |
[INFO] [stdout]  479 |             if let Some(comps) = self.cache.borrow_mut().get_mut(&k) {
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  482 |                 self.cache.borrow_mut().insert(k, v);
[INFO] [stdout]      |                 -----------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  483 |             }
[INFO] [stdout]  484 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
[INFO] [stdout]      |
[INFO] [stdout] 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
[INFO] [stdout]      |
[INFO] [stdout] 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/diagnostics.rs:423:47
[INFO] [stdout]      |
[INFO] [stdout]  402 |                       if _self
[INFO] [stdout]      |  ________________________-
[INFO] [stdout]  403 | |                         .client_answers
[INFO] [stdout]  404 | |                         .borrow()
[INFO] [stdout]      | |                                 -
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |_________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  423 |                               if let Ok(code) = _self.file_cache.get_entire_code(&uri) {
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                 |
[INFO] [stdout]      |                                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  424 |                                   let mut checked = Set::new();
[INFO] [stdout]  425 |                                   let _ = _self.check_file(uri.clone(), code, &mut checked);
[INFO] [stdout]      |                                           -------------------------------------------------
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  429 |                           }
[INFO] [stdout]      |                           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1432:1
[INFO] [stdout]      |
[INFO] [stdout] 1432 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/els/diagnostics.rs:450:34
[INFO] [stdout]     |
[INFO] [stdout] 443 |         for entry in read_dir {
[INFO] [stdout]     |             -----    --------
[INFO] [stdout]     |             |        |
[INFO] [stdout]     |             |        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |             |        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |             `entry` calls a custom destructor
[INFO] [stdout]     |             `entry` will be dropped later as of Edition 2024
[INFO] [stdout] 444 |             let Ok(entry) = entry else {
[INFO] [stdout]     |                    -----
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 if let Ok(uri) = NormalizedUrl::from_file_path(entry.path()) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                  up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 453 |             } else if entry.path().is_dir() {
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/rename.rs:167:9
[INFO] [stdout]      |
[INFO] [stdout]  164 |           let Some(self_node) = graph.get_node(&path) else {
[INFO] [stdout]      |                    ---------
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    `self_node` calls a custom destructor
[INFO] [stdout]      |                    `self_node` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  167 | /         graph
[INFO] [stdout]  168 | |             .ref_inner()
[INFO] [stdout]      | |                        ^
[INFO] [stdout]      | |                        |
[INFO] [stdout]      | |________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  177 |       }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1432:1
[INFO] [stdout]      |
[INFO] [stdout] 1432 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `self_node` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:2922:1
[INFO] [stdout]      |
[INFO] [stdout] 2922 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for MappedRwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/els/server.rs:861:23
[INFO] [stdout]     |
[INFO] [stdout] 170 |           let _ = $self.send_log(format!("{}@{}: {s}", file!(), line!()));
[INFO] [stdout]     |                   -------------------------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 861 |                   match receiver.recv() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                         up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 862 |                       Ok(WorkerMessage::Request(id, params)) => {
[INFO] [stdout]     |                                                     ------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     `params` calls a custom destructor
[INFO] [stdout]     |                                                     `params` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 868 |                           match handler(&mut _self, params) {
[INFO] [stdout]     |                                 ---------------------------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 869 |                               Ok(result) => {
[INFO] [stdout] 870 |                                   let _ = _self.send_stdout(&LSPResult::new(id, result));
[INFO] [stdout]     |                                           ----------------------------------------------
[INFO] [stdout]     |                                           |                  |
[INFO] [stdout]     |                                           |                  this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                           |                  `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                           `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 871 |                               }
[INFO] [stdout] 872 |                               Err(err) => {
[INFO] [stdout]     |                                   ---
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `err` calls a custom destructor
[INFO] [stdout]     |                                   `err` will be dropped later as of Edition 2024
[INFO] [stdout] 873 |                                   lsp_log!("error: {err}");
[INFO] [stdout] 874 |                                   let _ = _self.send_stdout(&ErrorMessage::new(
[INFO] [stdout]     |  _________________________________________-
[INFO] [stdout] 875 | |                                     Some(id),
[INFO] [stdout] 876 | |                                     format!("err from {}: {err}", type_name::<R>()).into(),
[INFO] [stdout] 877 | |                                 ));
[INFO] [stdout]     | |                                  -
[INFO] [stdout]     | |                                  |
[INFO] [stdout]     | |__________________________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                    `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 891 |               }, // The receiver channel will be dropped and closed
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/dummy.rs (2 fixes)
[INFO] [stderr]    Migrating crates/els/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/completion.rs:479:34
[INFO] [stdout]      |
[INFO] [stdout]  479 |             if let Some(comps) = self.cache.borrow_mut().get_mut(&k) {
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  482 |                 self.cache.borrow_mut().insert(k, v);
[INFO] [stdout]      |                 -----------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  483 |             }
[INFO] [stdout]  484 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
[INFO] [stdout]      |
[INFO] [stdout] 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
[INFO] [stdout]      |
[INFO] [stdout] 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/diagnostics.rs:423:47
[INFO] [stdout]      |
[INFO] [stdout]  402 |                       if _self
[INFO] [stdout]      |  ________________________-
[INFO] [stdout]  403 | |                         .client_answers
[INFO] [stdout]  404 | |                         .borrow()
[INFO] [stdout]      | |                                 -
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |_________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  423 |                               if let Ok(code) = _self.file_cache.get_entire_code(&uri) {
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                 |
[INFO] [stdout]      |                                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  424 |                                   let mut checked = Set::new();
[INFO] [stdout]  425 |                                   let _ = _self.check_file(uri.clone(), code, &mut checked);
[INFO] [stdout]      |                                           -------------------------------------------------
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  429 |                           }
[INFO] [stdout]      |                           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1432:1
[INFO] [stdout]      |
[INFO] [stdout] 1432 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/els/diagnostics.rs:450:34
[INFO] [stdout]     |
[INFO] [stdout] 443 |         for entry in read_dir {
[INFO] [stdout]     |             -----    --------
[INFO] [stdout]     |             |        |
[INFO] [stdout]     |             |        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |             |        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |             `entry` calls a custom destructor
[INFO] [stdout]     |             `entry` will be dropped later as of Edition 2024
[INFO] [stdout] 444 |             let Ok(entry) = entry else {
[INFO] [stdout]     |                    -----
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 if let Ok(uri) = NormalizedUrl::from_file_path(entry.path()) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                  up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 453 |             } else if entry.path().is_dir() {
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/rename.rs:167:9
[INFO] [stdout]      |
[INFO] [stdout]  164 |           let Some(self_node) = graph.get_node(&path) else {
[INFO] [stdout]      |                    ---------
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    `self_node` calls a custom destructor
[INFO] [stdout]      |                    `self_node` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  167 | /         graph
[INFO] [stdout]  168 | |             .ref_inner()
[INFO] [stdout]      | |                        ^
[INFO] [stdout]      | |                        |
[INFO] [stdout]      | |________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  177 |       }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1432:1
[INFO] [stdout]      |
[INFO] [stdout] 1432 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `self_node` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:2922:1
[INFO] [stdout]      |
[INFO] [stdout] 2922 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for MappedRwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/els/server.rs:861:23
[INFO] [stdout]     |
[INFO] [stdout] 170 |           let _ = $self.send_log(format!("{}@{}: {s}", file!(), line!()));
[INFO] [stdout]     |                   -------------------------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 861 |                   match receiver.recv() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                         up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 862 |                       Ok(WorkerMessage::Request(id, params)) => {
[INFO] [stdout]     |                                                     ------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     `params` calls a custom destructor
[INFO] [stdout]     |                                                     `params` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 868 |                           match handler(&mut _self, params) {
[INFO] [stdout]     |                                 ---------------------------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 869 |                               Ok(result) => {
[INFO] [stdout] 870 |                                   let _ = _self.send_stdout(&LSPResult::new(id, result));
[INFO] [stdout]     |                                           ----------------------------------------------
[INFO] [stdout]     |                                           |                  |
[INFO] [stdout]     |                                           |                  this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                           |                  `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                           `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 871 |                               }
[INFO] [stdout] 872 |                               Err(err) => {
[INFO] [stdout]     |                                   ---
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `err` calls a custom destructor
[INFO] [stdout]     |                                   `err` will be dropped later as of Edition 2024
[INFO] [stdout] 873 |                                   lsp_log!("error: {err}");
[INFO] [stdout] 874 |                                   let _ = _self.send_stdout(&ErrorMessage::new(
[INFO] [stdout]     |  _________________________________________-
[INFO] [stdout] 875 | |                                     Some(id),
[INFO] [stdout] 876 | |                                     format!("err from {}: {err}", type_name::<R>()).into(),
[INFO] [stdout] 877 | |                                 ));
[INFO] [stdout]     | |                                  -
[INFO] [stdout]     | |                                  |
[INFO] [stdout]     | |__________________________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                    `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 891 |               }, // The receiver channel will be dropped and closed
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating crates/els/tests/test.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/completion.rs:479:34
[INFO] [stdout]      |
[INFO] [stdout]  479 |             if let Some(comps) = self.cache.borrow_mut().get_mut(&k) {
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  482 |                 self.cache.borrow_mut().insert(k, v);
[INFO] [stdout]      |                 -----------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  483 |             }
[INFO] [stdout]  484 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
[INFO] [stdout]      |
[INFO] [stdout] 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
[INFO] [stdout]      |
[INFO] [stdout] 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/diagnostics.rs:423:47
[INFO] [stdout]      |
[INFO] [stdout]  402 |                       if _self
[INFO] [stdout]      |  ________________________-
[INFO] [stdout]  403 | |                         .client_answers
[INFO] [stdout]  404 | |                         .borrow()
[INFO] [stdout]      | |                                 -
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |_________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  423 |                               if let Ok(code) = _self.file_cache.get_entire_code(&uri) {
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                 |
[INFO] [stdout]      |                                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  424 |                                   let mut checked = Set::new();
[INFO] [stdout]  425 |                                   let _ = _self.check_file(uri.clone(), code, &mut checked);
[INFO] [stdout]      |                                           -------------------------------------------------
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  429 |                           }
[INFO] [stdout]      |                           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1432:1
[INFO] [stdout]      |
[INFO] [stdout] 1432 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/els/diagnostics.rs:450:34
[INFO] [stdout]     |
[INFO] [stdout] 443 |         for entry in read_dir {
[INFO] [stdout]     |             -----    --------
[INFO] [stdout]     |             |        |
[INFO] [stdout]     |             |        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |             |        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |             `entry` calls a custom destructor
[INFO] [stdout]     |             `entry` will be dropped later as of Edition 2024
[INFO] [stdout] 444 |             let Ok(entry) = entry else {
[INFO] [stdout]     |                    -----
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 if let Ok(uri) = NormalizedUrl::from_file_path(entry.path()) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                  up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 453 |             } else if entry.path().is_dir() {
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/els/rename.rs:167:9
[INFO] [stdout]      |
[INFO] [stdout]  164 |           let Some(self_node) = graph.get_node(&path) else {
[INFO] [stdout]      |                    ---------
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    `self_node` calls a custom destructor
[INFO] [stdout]      |                    `self_node` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  167 | /         graph
[INFO] [stdout]  168 | |             .ref_inner()
[INFO] [stdout]      | |                        ^
[INFO] [stdout]      | |                        |
[INFO] [stdout]      | |________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  177 |       }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1432:1
[INFO] [stdout]      |
[INFO] [stdout] 1432 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `self_node` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:2922:1
[INFO] [stdout]      |
[INFO] [stdout] 2922 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for MappedRwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/els/server.rs:861:23
[INFO] [stdout]     |
[INFO] [stdout] 170 |           let _ = $self.send_log(format!("{}@{}: {s}", file!(), line!()));
[INFO] [stdout]     |                   -------------------------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 861 |                   match receiver.recv() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                         up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 862 |                       Ok(WorkerMessage::Request(id, params)) => {
[INFO] [stdout]     |                                                     ------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     `params` calls a custom destructor
[INFO] [stdout]     |                                                     `params` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 868 |                           match handler(&mut _self, params) {
[INFO] [stdout]     |                                 ---------------------------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 869 |                               Ok(result) => {
[INFO] [stdout] 870 |                                   let _ = _self.send_stdout(&LSPResult::new(id, result));
[INFO] [stdout]     |                                           ----------------------------------------------
[INFO] [stdout]     |                                           |                  |
[INFO] [stdout]     |                                           |                  this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                           |                  `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                           `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 871 |                               }
[INFO] [stdout] 872 |                               Err(err) => {
[INFO] [stdout]     |                                   ---
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `err` calls a custom destructor
[INFO] [stdout]     |                                   `err` will be dropped later as of Edition 2024
[INFO] [stdout] 873 |                                   lsp_log!("error: {err}");
[INFO] [stdout] 874 |                                   let _ = _self.send_stdout(&ErrorMessage::new(
[INFO] [stdout]     |  _________________________________________-
[INFO] [stdout] 875 | |                                     Some(id),
[INFO] [stdout] 876 | |                                     format!("err from {}: {err}", type_name::<R>()).into(),
[INFO] [stdout] 877 | |                                 ));
[INFO] [stdout]     | |                                  -
[INFO] [stdout]     | |                                  |
[INFO] [stdout]     | |__________________________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                    `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 891 |               }, // The receiver channel will be dropped and closed
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/eval_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/common.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/repl.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/test.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/embed.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 33s
[INFO] [stderr] crater-edition-check: erg_common v0.6.53 (/opt/rustwide/workdir/crates/erg_common) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: erg_proc_macros v0.6.53 (/opt/rustwide/workdir/crates/erg_proc_macros) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: erg_compiler v0.6.53 (/opt/rustwide/workdir/crates/erg_compiler) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: erg_parser v0.6.53 (/opt/rustwide/workdir/crates/erg_parser) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: erg_linter v0.6.53 (/opt/rustwide/workdir/crates/erg_linter) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: els v0.1.65 (/opt/rustwide/workdir/crates/els) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: erg v0.6.53 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]    Compiling erg_common v0.6.53 (/opt/rustwide/workdir/crates/erg_common)
[INFO] [stderr]    Compiling erg_proc_macros v0.6.53 (/opt/rustwide/workdir/crates/erg_proc_macros)
[INFO] [stderr]     Checking erg_parser v0.6.53 (/opt/rustwide/workdir/crates/erg_parser)
[INFO] [stderr]    Compiling erg_compiler v0.6.53 (/opt/rustwide/workdir/crates/erg_compiler)
[INFO] [stderr]    Compiling erg v0.6.53 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:543:33
[INFO] [stdout]     |
[INFO] [stdout] 542 | ...                   let err = self.skip_and_throw_invalid_chunk_err(
[INFO] [stdout]     |                                      -------------------------------- borrow later used by call
[INFO] [stdout] 543 | ...                       caused_by!(),
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           creates a temporary value which is freed while still in use
[INFO] [stdout]     |                           temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:555:67
[INFO] [stdout]     |
[INFO] [stdout] 555 | ...                   self.skip_and_throw_invalid_chunk_err(caused_by!(), line!(), last.loc())
[INFO] [stdout]     |                            -------------------------------- ^^^^^^^^^^^^
[INFO] [stdout]     |                            |                                |
[INFO] [stdout]     |                            |                                creates a temporary value which is freed while still in use
[INFO] [stdout]     |                            |                                temporary value is freed at the end of this statement
[INFO] [stdout]     |                            borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:557:59
[INFO] [stdout]     |
[INFO] [stdout] 557 | ...                   self.unexpected_none(line!(), caused_by!())
[INFO] [stdout]     |                            ---------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                            |                        |
[INFO] [stdout]     |                            |                        creates a temporary value which is freed while still in use
[INFO] [stdout]     |                            |                        temporary value is freed at the end of this statement
[INFO] [stdout]     |                            borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:586:21
[INFO] [stdout]     |
[INFO] [stdout] 585 |                 let err = self.skip_and_throw_invalid_chunk_err(
[INFO] [stdout]     |                                -------------------------------- borrow later used by call
[INFO] [stdout] 586 |                     caused_by!(),
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     creates a temporary value which is freed while still in use
[INFO] [stdout]     |                     temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:634:33
[INFO] [stdout]     |
[INFO] [stdout] 633 | ...                   let err = self.skip_and_throw_invalid_chunk_err(
[INFO] [stdout]     |                                      -------------------------------- borrow later used by call
[INFO] [stdout] 634 | ...                       caused_by!(),
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           creates a temporary value which is freed while still in use
[INFO] [stdout]     |                           temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:809:67
[INFO] [stdout]     |
[INFO] [stdout] 809 |                 let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]     |                                -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                                |                                  |
[INFO] [stdout]     |                                |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]     |                                |                                  temporary value is freed at the end of this statement
[INFO] [stdout]     |                                borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:829:71
[INFO] [stdout]     |
[INFO] [stdout] 829 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]     |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                                    |                                  |
[INFO] [stdout]     |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]     |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]     |                                    borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:849:67
[INFO] [stdout]     |
[INFO] [stdout] 849 |                 let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]     |                                -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                                |                                  |
[INFO] [stdout]     |                                |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]     |                                |                                  temporary value is freed at the end of this statement
[INFO] [stdout]     |                                borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:908:25
[INFO] [stdout]     |
[INFO] [stdout] 907 |                     let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]     |                                    ------------------------------ borrow later used by call
[INFO] [stdout] 908 |                         caused_by!(),
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         creates a temporary value which is freed while still in use
[INFO] [stdout]     |                         temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:980:33
[INFO] [stdout]     |
[INFO] [stdout] 979 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]     |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 980 | ...                       caused_by!(),
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           creates a temporary value which is freed while still in use
[INFO] [stdout]     |                           temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1012:25
[INFO] [stdout]      |
[INFO] [stdout] 1011 |                     let err = self.skip_and_throw_invalid_unclosed_err(
[INFO] [stdout]      |                                    ----------------------------------- borrow later used by call
[INFO] [stdout] 1012 |                         caused_by!(),
[INFO] [stdout]      |                         ^^^^^^^^^^^^
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         creates a temporary value which is freed while still in use
[INFO] [stdout]      |                         temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1022:66
[INFO] [stdout]      |
[INFO] [stdout] 1022 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:968:62
[INFO] [stdout]     |
[INFO] [stdout] 968 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]     |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                                     |                        |
[INFO] [stdout]     |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]     |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]     |                                     borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1043:62
[INFO] [stdout]      |
[INFO] [stdout] 1043 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1130:71
[INFO] [stdout]      |
[INFO] [stdout] 1130 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                    |                                  |
[INFO] [stdout]      |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                    borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1208:33
[INFO] [stdout]      |
[INFO] [stdout] 1207 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 1208 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1265:66
[INFO] [stdout]      |
[INFO] [stdout] 1265 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:543:33
[INFO] [stdout]     |
[INFO] [stdout] 542 | ...                   let err = self.skip_and_throw_invalid_chunk_err(
[INFO] [stdout]     |                                      -------------------------------- borrow later used by call
[INFO] [stdout] 543 | ...                       caused_by!(),
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           creates a temporary value which is freed while still in use
[INFO] [stdout]     |                           temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:555:67
[INFO] [stdout]     |
[INFO] [stdout] 555 | ...                   self.skip_and_throw_invalid_chunk_err(caused_by!(), line!(), last.loc())
[INFO] [stdout]     |                            -------------------------------- ^^^^^^^^^^^^
[INFO] [stdout]     |                            |                                |
[INFO] [stdout]     |                            |                                creates a temporary value which is freed while still in use
[INFO] [stdout]     |                            |                                temporary value is freed at the end of this statement
[INFO] [stdout]     |                            borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:557:59
[INFO] [stdout]     |
[INFO] [stdout] 557 | ...                   self.unexpected_none(line!(), caused_by!())
[INFO] [stdout]     |                            ---------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                            |                        |
[INFO] [stdout]     |                            |                        creates a temporary value which is freed while still in use
[INFO] [stdout]     |                            |                        temporary value is freed at the end of this statement
[INFO] [stdout]     |                            borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1335:41
[INFO] [stdout]      |
[INFO] [stdout] 1334 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 1335 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1406:62
[INFO] [stdout]      |
[INFO] [stdout] 1406 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:586:21
[INFO] [stdout]     |
[INFO] [stdout] 585 |                 let err = self.skip_and_throw_invalid_chunk_err(
[INFO] [stdout]     |                                -------------------------------- borrow later used by call
[INFO] [stdout] 586 |                     caused_by!(),
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     creates a temporary value which is freed while still in use
[INFO] [stdout]     |                     temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:634:33
[INFO] [stdout]     |
[INFO] [stdout] 633 | ...                   let err = self.skip_and_throw_invalid_chunk_err(
[INFO] [stdout]     |                                      -------------------------------- borrow later used by call
[INFO] [stdout] 634 | ...                       caused_by!(),
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           creates a temporary value which is freed while still in use
[INFO] [stdout]     |                           temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1522:62
[INFO] [stdout]      |
[INFO] [stdout] 1522 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1642:33
[INFO] [stdout]      |
[INFO] [stdout] 1641 | ...                   let err = self.skip_and_throw_invalid_chunk_err(
[INFO] [stdout]      |                                      -------------------------------- borrow later used by call
[INFO] [stdout] 1642 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1652:74
[INFO] [stdout]      |
[INFO] [stdout] 1652 | ...                   self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                           ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                           |                        |
[INFO] [stdout]      |                                           |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                           |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                           borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1659:66
[INFO] [stdout]      |
[INFO] [stdout] 1659 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:809:67
[INFO] [stdout]     |
[INFO] [stdout] 809 |                 let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]     |                                -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                                |                                  |
[INFO] [stdout]     |                                |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]     |                                |                                  temporary value is freed at the end of this statement
[INFO] [stdout]     |                                borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:829:71
[INFO] [stdout]     |
[INFO] [stdout] 829 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]     |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                                    |                                  |
[INFO] [stdout]     |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]     |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]     |                                    borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:849:67
[INFO] [stdout]     |
[INFO] [stdout] 849 |                 let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]     |                                -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                                |                                  |
[INFO] [stdout]     |                                |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]     |                                |                                  temporary value is freed at the end of this statement
[INFO] [stdout]     |                                borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:908:25
[INFO] [stdout]     |
[INFO] [stdout] 907 |                     let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]     |                                    ------------------------------ borrow later used by call
[INFO] [stdout] 908 |                         caused_by!(),
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         creates a temporary value which is freed while still in use
[INFO] [stdout]     |                         temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:980:33
[INFO] [stdout]     |
[INFO] [stdout] 979 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]     |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 980 | ...                       caused_by!(),
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           creates a temporary value which is freed while still in use
[INFO] [stdout]     |                           temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1012:25
[INFO] [stdout]      |
[INFO] [stdout] 1011 |                     let err = self.skip_and_throw_invalid_unclosed_err(
[INFO] [stdout]      |                                    ----------------------------------- borrow later used by call
[INFO] [stdout] 1012 |                         caused_by!(),
[INFO] [stdout]      |                         ^^^^^^^^^^^^
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         creates a temporary value which is freed while still in use
[INFO] [stdout]      |                         temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1022:66
[INFO] [stdout]      |
[INFO] [stdout] 1022 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> crates/erg_parser/parse.rs:968:62
[INFO] [stdout]     |
[INFO] [stdout] 968 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]     |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]     |                                     |                        |
[INFO] [stdout]     |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]     |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]     |                                     borrow later used by call
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1043:62
[INFO] [stdout]      |
[INFO] [stdout] 1043 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1882:83
[INFO] [stdout]      |
[INFO] [stdout] 1882 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1955:79
[INFO] [stdout]      |
[INFO] [stdout] 1955 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1968:83
[INFO] [stdout]      |
[INFO] [stdout] 1968 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1997:79
[INFO] [stdout]      |
[INFO] [stdout] 1997 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2006:75
[INFO] [stdout]      |
[INFO] [stdout] 2006 |                         let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                        -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                        |                                  |
[INFO] [stdout]      |                                        |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                        |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                        borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2048:71
[INFO] [stdout]      |
[INFO] [stdout] 2048 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                    |                                  |
[INFO] [stdout]      |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                    borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1130:71
[INFO] [stdout]      |
[INFO] [stdout] 1130 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                    |                                  |
[INFO] [stdout]      |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                    borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1208:33
[INFO] [stdout]      |
[INFO] [stdout] 1207 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 1208 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1265:66
[INFO] [stdout]      |
[INFO] [stdout] 1265 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2224:83
[INFO] [stdout]      |
[INFO] [stdout] 2224 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2250:79
[INFO] [stdout]      |
[INFO] [stdout] 2250 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2259:75
[INFO] [stdout]      |
[INFO] [stdout] 2259 |                         let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                        -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                        |                                  |
[INFO] [stdout]      |                                        |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                        |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                        borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2310:71
[INFO] [stdout]      |
[INFO] [stdout] 2310 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                    |                                  |
[INFO] [stdout]      |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                    borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1335:41
[INFO] [stdout]      |
[INFO] [stdout] 1334 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 1335 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1406:62
[INFO] [stdout]      |
[INFO] [stdout] 1406 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1522:62
[INFO] [stdout]      |
[INFO] [stdout] 1522 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1642:33
[INFO] [stdout]      |
[INFO] [stdout] 1641 | ...                   let err = self.skip_and_throw_invalid_chunk_err(
[INFO] [stdout]      |                                      -------------------------------- borrow later used by call
[INFO] [stdout] 1642 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1652:74
[INFO] [stdout]      |
[INFO] [stdout] 1652 | ...                   self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                           ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                           |                        |
[INFO] [stdout]      |                                           |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                           |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                           borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1659:66
[INFO] [stdout]      |
[INFO] [stdout] 1659 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2527:71
[INFO] [stdout]      |
[INFO] [stdout] 2527 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                    |                                  |
[INFO] [stdout]      |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                    borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2636:29
[INFO] [stdout]      |
[INFO] [stdout] 2635 |                         let err = self.skip_and_throw_invalid_unclosed_err(
[INFO] [stdout]      |                                        ----------------------------------- borrow later used by call
[INFO] [stdout] 2636 |                             caused_by!(),
[INFO] [stdout]      |                             ^^^^^^^^^^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             creates a temporary value which is freed while still in use
[INFO] [stdout]      |                             temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2645:70
[INFO] [stdout]      |
[INFO] [stdout] 2645 |                         self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                             ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                             |                        |
[INFO] [stdout]      |                                             |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                             |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                             borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2718:67
[INFO] [stdout]      |
[INFO] [stdout] 2718 |                 let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                |                                  |
[INFO] [stdout]      |                                |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2724:62
[INFO] [stdout]      |
[INFO] [stdout] 2724 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2877:79
[INFO] [stdout]      |
[INFO] [stdout] 2877 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1882:83
[INFO] [stdout]      |
[INFO] [stdout] 1882 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1955:79
[INFO] [stdout]      |
[INFO] [stdout] 1955 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1968:83
[INFO] [stdout]      |
[INFO] [stdout] 1968 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:1997:79
[INFO] [stdout]      |
[INFO] [stdout] 1997 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2006:75
[INFO] [stdout]      |
[INFO] [stdout] 2006 |                         let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                        -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                        |                                  |
[INFO] [stdout]      |                                        |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                        |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                        borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2048:71
[INFO] [stdout]      |
[INFO] [stdout] 2048 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                    |                                  |
[INFO] [stdout]      |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                    borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2224:83
[INFO] [stdout]      |
[INFO] [stdout] 2224 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2250:79
[INFO] [stdout]      |
[INFO] [stdout] 2250 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2259:75
[INFO] [stdout]      |
[INFO] [stdout] 2259 |                         let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                        -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                        |                                  |
[INFO] [stdout]      |                                        |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                        |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                        borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2310:71
[INFO] [stdout]      |
[INFO] [stdout] 2310 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                    |                                  |
[INFO] [stdout]      |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                    borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3220:33
[INFO] [stdout]      |
[INFO] [stdout] 3219 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 3220 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3231:74
[INFO] [stdout]      |
[INFO] [stdout] 3231 | ...                   self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                           ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                           |                        |
[INFO] [stdout]      |                                           |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                           |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                           borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3305:66
[INFO] [stdout]      |
[INFO] [stdout] 3305 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3363:33
[INFO] [stdout]      |
[INFO] [stdout] 3362 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 3363 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2527:71
[INFO] [stdout]      |
[INFO] [stdout] 2527 |                     let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                    -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                    |                                  |
[INFO] [stdout]      |                                    |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                    |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                    borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2636:29
[INFO] [stdout]      |
[INFO] [stdout] 2635 |                         let err = self.skip_and_throw_invalid_unclosed_err(
[INFO] [stdout]      |                                        ----------------------------------- borrow later used by call
[INFO] [stdout] 2636 |                             caused_by!(),
[INFO] [stdout]      |                             ^^^^^^^^^^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             creates a temporary value which is freed while still in use
[INFO] [stdout]      |                             temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2645:70
[INFO] [stdout]      |
[INFO] [stdout] 2645 |                         self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                             ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                             |                        |
[INFO] [stdout]      |                                             |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                             |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                             borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2718:67
[INFO] [stdout]      |
[INFO] [stdout] 2718 |                 let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                |                                  |
[INFO] [stdout]      |                                |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2724:62
[INFO] [stdout]      |
[INFO] [stdout] 2724 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3482:33
[INFO] [stdout]      |
[INFO] [stdout] 3481 | ...                   let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                      ------------------------------ borrow later used by call
[INFO] [stdout] 3482 | ...                       caused_by!(),
[INFO] [stdout]      |                           ^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           creates a temporary value which is freed while still in use
[INFO] [stdout]      |                           temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3540:25
[INFO] [stdout]      |
[INFO] [stdout] 3539 |                     let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                    ------------------------------ borrow later used by call
[INFO] [stdout] 3540 |                         caused_by!(),
[INFO] [stdout]      |                         ^^^^^^^^^^^^
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         creates a temporary value which is freed while still in use
[INFO] [stdout]      |                         temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3550:66
[INFO] [stdout]      |
[INFO] [stdout] 3550 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3458:21
[INFO] [stdout]      |
[INFO] [stdout] 3457 |                 let err = self.skip_and_throw_invalid_unclosed_err(
[INFO] [stdout]      |                                ----------------------------------- borrow later used by call
[INFO] [stdout] 3458 |                     caused_by!(),
[INFO] [stdout]      |                     ^^^^^^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     creates a temporary value which is freed while still in use
[INFO] [stdout]      |                     temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3580:29
[INFO] [stdout]      |
[INFO] [stdout] 3579 |                         let err = self.skip_and_throw_invalid_seq_err(
[INFO] [stdout]      |                                        ------------------------------ borrow later used by call
[INFO] [stdout] 3580 |                             caused_by!(),
[INFO] [stdout]      |                             ^^^^^^^^^^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             creates a temporary value which is freed while still in use
[INFO] [stdout]      |                             temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3639:66
[INFO] [stdout]      |
[INFO] [stdout] 3639 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3668:62
[INFO] [stdout]      |
[INFO] [stdout] 3668 |                 self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                     ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                     |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                     borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3759:66
[INFO] [stdout]      |
[INFO] [stdout] 3759 |                     self.errs.push(self.unexpected_none(line!(), caused_by!()));
[INFO] [stdout]      |                                         ---------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                         |                        |
[INFO] [stdout]      |                                         |                        creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                         |                        temporary value is freed at the end of this statement
[INFO] [stdout]      |                                         borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:2877:79
[INFO] [stdout]      |
[INFO] [stdout] 2877 | ...                   let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                      -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                      |                                  |
[INFO] [stdout]      |                                      |                                  creates a temporary value which is freed while still in use
[INFO] [stdout]      |                                      |                                  temporary value is freed at the end of this statement
[INFO] [stdout]      |                                      borrow later used by call
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3839:21
[INFO] [stdout]      |
[INFO] [stdout] 3836 |                 let err = self.get_stream_op_syntax_error(
[INFO] [stdout]      |                                -------------------------- borrow later used by call
[INFO] [stdout] ...
[INFO] [stdout] 3839 |                     caused_by!(),
[INFO] [stdout]      |                     ^^^^^^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     creates a temporary value which is freed while still in use
[INFO] [stdout]      |                     temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3813:29
[INFO] [stdout]      |
[INFO] [stdout] 3810 |                         let err = self.get_stream_op_syntax_error(
[INFO] [stdout]      |                                        -------------------------- borrow later used by call
[INFO] [stdout] ...
[INFO] [stdout] 3813 |                             caused_by!(),
[INFO] [stdout]      |                             ^^^^^^^^^^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             creates a temporary value which is freed while still in use
[INFO] [stdout]      |                             temporary value is freed at the end of this statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `format` which comes from the expansion of the macro `caused_by` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> crates/erg_parser/parse.rs:3789:75
[INFO] [stdout]      |
[INFO] [stdout] 3789 |                         let err = self.skip_and_throw_syntax_err(line!(), caused_by!());
[INFO] [stdout]      |                                        -------------------------          ^^^^^^^^^^^^
[INFO] [stdout]      |                                        |                                  |
[INFO] [stdout]      |                                        |                                  creates a temporary value which is freed while still in use
[WARN] too many lines in the log, truncating it
